JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)

好嘞,下面就来详细讲解一下“JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)”的完整攻略。

首先,我们先分析一下需要实现的效果。该效果要求实现的是一个可以上下左右无缝滚动的图像效果,并且设置定高、定宽以及停顿等效果,最重要的是要兼容ie和ff两种浏览器。

为了达到这个效果,我们可以采用一些主要的方法和技巧:

1. CSS属性设置

首先,我们可以通过CSS来设置图片的样式。例如,设置图片高度和宽度并清除浮动,如下:

img {
  width: 220px;
  height: 100px;
  float: left;
}

通过上述设置,我们将图片设置为定高、定宽、左浮动的效果,便利于我们后续实现JavaScript效果。

2. JavaScript实现

为了实现无缝上下左右滚动、定高、定宽以及停顿等效果,我们需要通过JavaScript来编写的代码实现。以下是一些主要的JavaScript代码实现:

2.1 上下无缝滚动

var div = document.getElementById("divContent");
var speed = 50;
var timer;

div2.innerHTML = div1.innerHTML; // 复制一个完全相同的内容

function MarqueeUp() {
    if(div2.offsetTop - div.scrollTop <= 0)
        div.scrollTop -= div1.offsetHeight;
    else {
        div.scrollTop++;
    }
}
timer = setInterval(MarqueeUp, speed);

上述代码实现的是一个上下滚动的效果。首先,我们获取到内容div、设置滚动速度,并初始化定时器。接着,我们将内容div的内容复制一份,以备需要无缝滚动。最后,在定时器里面,我们通过计算元素的offsetTop属性以及scrollTop属性,来实现上下滚动切换并产生无缝滚动的效果。

2.2 左右无缝滚动

var div = document.getElementById("divContent");
var childDiv1 = document.getElementById("childDiv1");
var childDiv2 = document.getElementById("childDiv2");

function scrollLeft() {
    if(div.scrollLeft >= childDiv1.scrollWidth) {
        div.scrollLeft = 0;
    } else {
        div.scrollLeft++;
    }
}
var timer = setInterval(scrollLeft, 20);

上述代码实现的是一个左右滚动的效果。我们首先获取到要滚动的内容div,以及内容div中的子元素childDiv1和childDiv2等元素。然后,通过计算元素的scrollWidth属性以及scrollLeft属性,来实现左右滚动切换并产生无缝滚动的效果。

3. 示例说明

假设我们现在有一个含有3张图片的div,且每个图片的高度和宽度都是220px和100px。我们现在需要实现该图片向下无缝滚动的效果,并且能够在滚动停顿一段时间之后继续滚动。

可以参考下面的代码实现:

HTML代码:

<div id="divContent" style="height: 220px; overflow: hidden;">
  <div>
    <img src="1.jpg"/>
  </div>
  <div>
    <img src="2.jpg"/>
  </div>
  <div>
    <img src="3.jpg"/>
  </div>
</div>

JavaScript代码:

var div = document.getElementById("divContent");
var speed = 50;
var timer;
var delay = 1000; // 暂停1秒

div.innerHTML += div.innerHTML;

function startScroll() {
    timer = setInterval(scrollUp, speed);
    div.scrollTop = 0;
}

function pauseScroll() {
    clearInterval(timer);
    setTimeout(function() {
        timer = setInterval(scrollUp, speed);
    }, delay);
}

function scrollUp() {
    if(div.scrollTop % div.clientHeight == 0) {
        clearInterval(timer);
        setTimeout(function() {
            startScroll();
        }, delay);
    } else {
        div.scrollTop++;
        if(div.scrollTop >= div.scrollHeight / 2) {
            div.scrollTop = 0;
        }
    }
}

startScroll();
div.onmouseover = function() { pauseScroll(); };
div.onmouseout = function() { startScroll(); };

上述代码实现了下无缝滚动且停顿之后继续滚动的效果。首先,我们获取到内容div、设置滚动速度和停顿时间,并初始化定时器与内容div的scrollTop属性。接着,我们复制了一个完全相同的div内容,并通过滚动scrollTop属性、停顿setTimeout方法等方法来实现无缝滚动效果。最后,在实现暂停和继续滚动的效果中,我们通过鼠标事件来控制定时器和滚动效果的实现。

另外一个示例说明是左右无缝滚动的效果。以下是一个示例说明:

HTML代码:

<div id="divContent" style="width: 660px; overflow: hidden;">
  <div id="childDiv1">
    <img src="1.jpg" />
    <img src="2.jpg" />
    <img src="3.jpg" />
  </div>
  <div id="childDiv2"></div>
</div>

JavaScript代码:

var div = document.getElementById("divContent");
var childDiv1 = document.getElementById("childDiv1");
var childDiv2 = document.getElementById("childDiv2");

childDiv2.innerHTML = childDiv1.innerHTML;

function scrollLeft() {
    if(div.scrollLeft >= childDiv1.scrollWidth) {
        div.scrollLeft = 0;
    } else {
        div.scrollLeft++;
    }
}
var timer = setInterval(scrollLeft, 5);

上述代码实现了一个左右无缝滚动效果。我们首先获取到要滚动的内容div,以及内容div中的子元素childDiv1和childDiv2等元素。然后,通过计算元素的scrollWidth属性以及scrollLeft属性,来实现左右滚动切换并产生无缝滚动的效果。

好了,以上就是实现JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)的完整攻略了,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • AngularJS中的指令全面解析(必看)

    AngularJS中的指令全面解析(必看) 什么是AngularJS指令 AngularJS指令是一种在HTML标记中被AngularJS框架扫描和识别的特殊标记,用于扩展HTML对于不同业务逻辑和场景的控制能力。 在AngularJS中,指令由属性名、元素名、class名或注释名构成,其中属性名和元素名常被用于指令的标记,而class名和注释名通常用于辅助…

    css 2023年6月9日
    00
  • 你需要知道的TypeScript高级类型总结

    你需要知道的TypeScript高级类型总结 前言 TypeScript 是静态类型语言,相比于 JavaScript,它更加安全,且能提供更好的自动化工具支持。在使用 TypeScript 进行代码编写时,我们可能会涉及到一些比较高级的类型语法。本文将会总结一些 TypeScirpt 高级类型的用法,帮助初学者更好地理解和应用。 Partial Parti…

    css 2023年6月9日
    00
  • 原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)

    实现元素渐隐/渐现可以通过修改元素的CSS透明度来实现。下面是原生JS实现元素渐隐/渐现的攻略: 实现原理 使用原生Javascript实现元素的渐隐/渐现主要是通过修改元素的透明度实现。可以使用CSS的opacity属性来实现元素的透明度,取值范围为0(完全透明)到1(完全不透明)。在Javascript中,可以使用style对象的opacity属性来修改…

    css 2023年6月10日
    00
  • 导入css文件使用判断条件实现

    下面是使用判断条件实现导入css文件的攻略,包含以下几个步骤: 1. 导入条件判断的js文件 为了实现动态导入css文件,我们需要使用条件判断的JavaScript文件。我们可以创建一个js文件(比如叫做”loadCSS.js”),然后在html文件中引入该文件。 <script src="js/loadCSS.js">&lt…

    css 2023年6月10日
    00
  • 深入浅析Jsonp解决ajax跨域问题

    关于“深入浅析Jsonp解决ajax跨域问题”的完整攻略,我将从以下几个方面进行讲解: 什么是跨域问题 什么是Jsonp以及如何使用Jsonp解决跨域问题 Jsonp示例说明 注意事项与缺点 1. 什么是跨域问题 跨域问题是指在Web应用中,如果一个源(域、协议、端口号的组合)在请求一个不同的源的资源时,浏览器会阻止该请求,因为这样可能会导致信息泄露、数据损…

    css 2023年6月10日
    00
  • DIV随滚动条滚动而滚动的实现代码【推荐】

    这里给您详细讲解一下DIV随滚动条滚动而滚动的实现代码的完整攻略。 1. 安装jQuery插件 实现DIV随滚动条滚动而滚动,需要使用jQuery插件。如果您还没有安装jQuery插件,请先进行安装。 在HTML文件中插入jQuery插件的链接: <script src="https://cdn.bootcss.com/jquery/3.4.…

    css 2023年6月10日
    00
  • CSS控制继承中的height能变为可继承吗

    CSS控制继承中的height属性默认不会被继承,因为height属性通常应用于块级元素,为其设置一个指定的高度值,并不会对其子元素产生影响,因此也不会被继承。 但是,我们可以通过一些技巧来使height属性变为可继承,示例如下: 第一种方法:使用百分比值 如果一个块级元素的高度值使用百分比来设置,那么其子元素的高度值也可以使用百分比来设置,并且继承自父元素…

    css 2023年6月10日
    00
  • CSS文本格式化方法详解

    CSS文本格式化是指利用CSS来控制文本样式,从而达到美化页面的效果。在这里,我们将会讲解以下内容: 修改字体样式、大小、颜色 设置文本对齐方式 调整行高和字间距 使用文本阴影、下划线、删除线 控制单词、字母的间距 设置首行缩进、断字、断行 合理应用列表样式 接下来,我们将详细介绍每一个方面,并提供相应的代码示例。 修改字体样式、大小、颜色 在CSS中,可以…

    Web开发基础 2023年3月20日
    00
合作推广
合作推广
分享本页
返回顶部