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日

相关文章

  • CSS隐藏页面元素的5种方法

    关于“CSS 隐藏页面元素的5种方法”的完整攻略,我将从以下几个方面进行介绍: 隐藏元素的背景色和边框颜色,将元素设置为透明; 将元素的宽和高设为0; 使用“display:none”隐藏元素; 利用“visibility:hidden”来隐藏元素; 设置元素的“opacity:0”属性来隐藏元素。 下面,我们将一一介绍这五种方法。 1. 隐藏元素的背景色和…

    css 2023年6月10日
    00
  • IOS登录页面动画、转场动画开发详解

    实现iOS登录页面动画、转场动画所需的技术有很多,下面我将介绍其中两种常用的方式。 一、使用CATransition实现转场动画 CATransition是CALayer的子类,它提供了一种简单的方式来添加转场动画效果。下面是步骤: 在源控制器实例化CATransition对象,并设置动画类型和方向 objc CATransition *trans = [C…

    css 2023年6月11日
    00
  • css和css3弹性盒模型实现元素宽度(高度)自适应

    关于如何使用CSS和CSS3的弹性盒模型实现元素宽度自适应,具体的步骤如下: 1. 确定容器的样式 首先,我们需要确定容器的样式,将容器设置为 display: flex;,这样子容器就可以成为一个弹性盒。在进行布局排列时,弹性盒有很多可以调整的参数,例如:flex-direction、justify-content、align-items等等。 .cont…

    css 2023年6月10日
    00
  • CSS3 Backgrounds属性相关介绍

    CSS3 Backgrounds属性相关介绍 CSS Backgrounds模块定义了一些有关背景的属性,使得开发者能够更加灵活地美化他们的网站。本文将介绍CSS3 Backgrounds属性及其用法。 1. background-color background-color 属性定义元素的背景颜色。例如,下面的代码将一个div元素的背景颜色设置为红色: d…

    css 2023年6月10日
    00
  • div css 滚动条样式 DIV滚动条属性及样式设置方式

    下面我将为您详细讲解“div css 滚动条样式 DIV滚动条属性及样式设置方式”的完整攻略。 简介 在网页设计中,滚动条是非常常见的组件之一。然而,浏览器默认的滚动条样式并不美观,甚至会影响您网页的大气和美观。为此,我们需要自定义滚动条样式,在这里我们就要介绍DIV滚动条属性及样式设置方式。 初步准备 先设定一个网页布局模板,并在其中加入一个 div 元素…

    css 2023年6月9日
    00
  • JS+CSS实现的拖动分页效果实例

    下面我将为您详细介绍JS+CSS实现的拖动分页效果的完整攻略。 1. 拖动分页效果的原理及实现思路 拖动分页效果是指,当鼠标拖动页面时,页面会随着鼠标的移动而移动,形成一个拖动的视觉效果。实现这样的效果,需要用到JS和CSS。 具体实现的思路如下: 首先,在CSS中确定页面的基本样式,包括页面的大小、颜色、边框等; 然后,在JS中监听鼠标的移动事件,并获取鼠…

    css 2023年6月10日
    00
  • CSS 即将支持嵌套,SASS/LESS 等预处理器该何去何从

    CSS 即将支持嵌套,SASS/LESS 等预处理器该何去何从 在 CSS 3 中,嵌套选择器是一种非常有用的选择器,可以让开发者更加方便地编写 CSS 样式。然而,CSS 3 中的嵌套选择器只能嵌套一层,对于复杂的嵌套结构,仍然需要使用类名或 ID 来实现。近期,CSS 工作组提出了一个新的 CSS 规范,即 CSS Nesting,该规范将支持多层嵌套选…

    css 2023年5月18日
    00
  • animate.css在vue项目中的使用教程

    下面是关于“animate.css在vue项目中的使用教程”的完整攻略。 1. 下载animate.css库 首先,需要从animate.css的官方Github地址(https://github.com/animate-css/animate.css)下载animate.css的库文件,将下载后的animate.css文件放置在你的Vue项目中的任意目录下…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部