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水平对齐示例介绍

    关于CSS水平对齐示例介绍,我来提供一份完整攻略。 CSS水平对齐示例介绍 1. text-align属性 text-align属性可以用于设置文本或行内元素在其包含块中的水平对齐方式。其属性值可以为left、right、center和justify。 示例1 以下是一个简单的示例,用于展示text-align属性: <div class="…

    css 2023年6月9日
    00
  • firefox推荐与个人理解的css书写顺序

    当我们编写CSS样式时,书写顺序很重要,它直接关系到样式的继承和优先级。为了提高CSS代码可读性,方便后期维护,我们可以采用firefox推荐的CSS书写顺序。 1. Firefox 推荐的 CSS书写顺序 根据FireFox推荐的CSS书写顺序,我们优先编写如下部分的样式代码: 布局定位属性(display、position、float、clear等) 自…

    css 2023年6月10日
    00
  • Vue实现户籍管理系统户籍信息的添加与删除方式

    为了实现Vue实现户籍管理系统户籍信息的添加与删除,我们需要先了解Vue的相关知识和技术。 准备工作 首先我们需要安装Vue.js的开发环境,包括Vue.js本体和Vue CLI。我们可以通过以下命令来安装: #安装Vue.js $ npm install vue #安装Vue CLI $ npm install -g @vue/cli 添加户籍信息 要添加…

    css 2023年6月9日
    00
  • 如何实现div 图片在DIV内水平居中

    如何实现div图像在div内水平居中有几种方法:使用text-align:center和display:flex;justify-content:center;两种方法。 使用text-align:center实现div图像在div内水平居中 可以通过以下步骤实现: 为包含图片的div元素设置布局方式(display)为block或者inline-block…

    css 2023年6月9日
    00
  • HTML5 背景的显示区域实现

    下面是关于HTML5背景的显示区域实现的完整攻略。 什么是HTML5背景的显示区域? HTML5背景的显示区域是指网页的背景图或颜色所占据的区域。 在HTML5背景的显示区域中,一般可以设置背景图片、背景颜色、背景重复方式、背景滚动等属性。 实现方法 设置背景颜色 可以使用CSS的background-color属性来设置HTML5背景的显示区域的背景颜色。…

    css 2023年6月9日
    00
  • Flexbox 布局的最简单表单的实现

    我来为你详细讲解如何通过Flexbox布局实现最简单的表单样式。 步骤一:创建表单的基本结构 首先,我们需要创建一个基本的表单结构。可以使用HTML创建一个表单元素,并在里面添加一些表单控件(例如input、label等),如下所示: <form> <div> <label for="name">姓名:…

    css 2023年6月10日
    00
  • Photoshop CSS网页制作的背景图 主题的引用样式

    Photoshop制作CSS网页的背景图,主题的引用样式是网页制作中非常重要的一步,下面是一些完整攻略和示例说明: 一、Photoshop中制作背景图 打开Photoshop,选择新建文档。 设置文档大小为网页推荐大小,如1366×768。 设计背景图,这里可以用Photoshop的各种工具和资源进行创作。 点击保存,将设计好的图片保存为web所需的格式,如…

    css 2023年6月9日
    00
  • vscode 使用Prettier插件格式化配置使用代码详解

    一、介绍 Prettier 是一款应用广泛的代码格式化工具,可以将代码格式化为符合约定的样式。它支持多种编程语言,可以自动识别代码中的错误格式,并按照你的配置进行更改。而在 VSCode 中,借助插件 Prettier 可以很方便地使用这个强大的工具。 二、安装插件 在 VSCode 中,打开扩展面板(快捷键为 Ctrl + Shift + X 或者通过菜单…

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