javascript - 用于 php 生成的图像库的水平 slider

标签 javascript jquery css

我正在尝试为我的客户自定义添加的画廊编写一个水平 slider 。元素显示为无换行、多窗口宽度的 block ,一旦单击向左或向右的 slider 箭头,它就会更改 margin-left

它应该增加/减少 margin-left 的值必须是一个变量,因为无论当前加载的响应式 css 文档如何,它都应该工作。

我创建了一个脚本,它可以获取 photo-container div 宽度,将其保存为变量,稍后将其用作 animate() 中的右侧参数> 功能,但它仍然无法按照我希望的方式工作。事实上,它实际上根本不起作用,或者在控制台中显示无效的补间错误。

我的脚本:

$(document).ready(function() {
           var imageWidthToSlice = $(".gallery-element-wrapper").css("width");
            imageWidth = imageWidthToSlice.slice(0, -2);
            defaultMargin = $(".gallery-element-wrapper:first").css("margin-left").slice(0, -2);
            numberOfElements = $(".gallery-element-wrapper").length;
            totalWidth = imageWidth * numberOfElements;

            $(".gallery-arrow").click(function() {
               if ( $(".gallery-element-wrapper:first").css("margin-left").slice(0, -2) != defaultMargin ) {
                   $(".gallery-element-wrapper:first").animate({
                       marginLeft: "+="imageWidth;
                   },500);
               } 
                else {
                    console.log("This is the first image, can't slide left more.");
                }
            });

        });

还有主题的视觉概览: enter image description here

还有 JSFiddle:

https://jsfiddle.net/akpwb5b9/

最佳答案

试试这个。

$(document).ready(function() {
        var imageWidthToSlice = $(".gallery-element-wrapper").css("width");
        imageWidth = imageWidthToSlice.slice(0, -2);
        defaultMargin = $(".gallery-element-wrapper:first").css("margin-left").slice(0, -2);
        numberOfElements = $(".gallery-element-wrapper").length;
        totalWidth = imageWidth * numberOfElements;

        $(document).on("click",".gallery-arrow-wrapper",function() {

           if ( $(".gallery-element-wrapper:first").css("margin-left").slice(0, -2) != defaultMargin ) {
               $(".gallery-element-wrapper:first").animate({
                   marginLeft: "+="+imageWidth
               },500);
           } 
            else {
          $(".gallery-element-wrapper:first").animate({
                   marginLeft: "+="+500
               },500);

                console.log("This is the first image, can't slide left more.");
            }
        });

    });

关于javascript - 用于 php 生成的图像库的水平 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412973/

相关文章:

javascript - css 与 react.js 的奇怪行为

javascript - 拆分字符串并将所有值传递给函数

php - fullcalendar - 选择回调函数 - 不会在新选择时清除事件

jquery - 如何在点击退出时关闭模式弹出窗口?

javascript - 当用户滚动回页面顶部时,如何使 Logo 效果恢复为 "normal"?

javascript - d3.js 圈子没有出现

javascript - 替换字符串,除非它在给定字符串的某个子字符串中

javascript - 使用JS从输入标签读取多个文件

javascript - html 中的链接不起作用,但在浏览器的左下角可见

css - 避免 CSS 继承