Как остановить прокрутку, когда нет контента для отображения в angular 6?

Я делаю приложение angular 6, в котором я делаю прокручиваемые div, в которых есть,

HTML:

<button class = "lefty paddle" id = "left-button"> PREVIOUS </button>
  <div class = "container">
    <div class = "inner" style = "background:red"></div>
    <div class = "inner" style = "background:green"></div>
    <div class = "inner" style = "background:blue"></div>
    <div class = "inner" style = "background:yellow"></div>
    <div class = "inner" style = "background:orange"></div>
  </div>
<button class = "righty paddle" id = "right-button"> NEXT </button>

TS:

  ngOnInit() {
    const container = document.querySelector(".container");
const lefty = document.querySelector(".lefty");
let translate = 0;

lefty.addEventListener("click", function() {
    translate += 200;
    container.style.transform = "translateX(" + translate + "px" + ")";
});

const righty = document.querySelector(".righty");
righty.addEventListener("click", function() {
    translate -= 200;
    container.style.transform = "translateX(" + translate + "px" + ")";
});
  }

Рабочий Stckblitz:https://stackblitz.com/edit/angular-mncf26

В этой рабочей демонстрации вы можете видеть, что есть следующая и предыдущая кнопки, которые переводят 200px вправо или влево в зависимости от щелчка.

Здесь, если щелчок был сделан либо влево, либо вправо, даже если нет контента, он прокручивает 200px в любую сторону ..

Как остановить прокрутку, если нет содержимого для отображения?

Перед преобразованием проверьте новое значение перевода. Если ниже нуля. вернуть ноль. Если он больше, то container.offsetWidth вернет container.offsetWidth.

Peter Bode 18.12.2018 11:52

используйте переменную для отслеживания смещения, демонстрация stackblitz.com/edit/angular-ptxrq7

ABOS 18.12.2018 12:08

@ABOS, Yikes! The page you requested couldn't be found. ..

Maniraj Murugan 18.12.2018 12:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
163
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это сложно, потому что вы перемещаете контейнер в обратном направлении, поэтому вам нужно играть с отрицательными значениями ваших переменных.

Я сделал быстрый стек, показывающий это (и я немного изменил ваш код, чтобы упростить его, извините), скажите мне, хотите ли вы этого:

<button class = "lefty paddle" 
  (click) = "translateValue = translateValue + 200" 
  [disabled] = "-translateValue <= 0"> PREVIOUS </button>

  <div class = "container" #container [ngStyle] = "getStyle">
    <div class = "inner" *ngFor = "let item of elements" [style.background] = "item" #items></div>
  </div>

<button class = "righty paddle" 
  (click) = "translateValue = translateValue - 200"
  [disabled] = "-translateValue >= container.offsetWidth"> NEXT </button>

Не знаю насчет того, кто проголосовал против. Даже мой код был отредактирован, это временно решает мою проблему .. Спасибо за ваше время и помощь .. Сделал за вас голос за вас ..

Maniraj Murugan 18.12.2018 12:25

Другие вопросы по теме