全部代码

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>两侧广告栏js原生代码实现</title><style>*{padding: 0;margin: 0;}.box{position: relative;}.ad{width: 100%;position: absolute;top: 150px;}.box-left{float: left;width: 150px;height: 300px;background-color: #aaa;}.box-right{width: 150px;height: 300px;background-color: #aaa;float: right;}</style><script>window.onload = function () {//获取相关元素var ad = document.getElementsByClassName("ad")[0];var adtop = ad.offsetTop;window.onscroll = function () {var stop = scroll().topanimate(ad, stop + adtop);// console.log(ad.style.top);}//缓动动画封装function animate(ele, target) {clearInterval(ele.timer);ele.timer = setInterval(function () {var step = (target - ele.offsetTop) / 10;step = step > 0 ? Math.ceil(step) : Math.floor(step);ele.style.top = ele.offsetTop + step + "px";console.log(1);if (Math.abs(target - ele.offsetTop) < Math.abs(step)) {ele.style.top = target + "px";clearInterval(ele.timer);}}, 25);}// scroll的封装function scroll() {return {"top": window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop,"left": window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft}}}</script>
</head>
<body><div class="box" style="height: 5000px"><div class="ad"><div class="box-left"></div><div class="box-right"></div></div></div>
</body>
</html>

js部分

<script>window.onload = function () {//获取相关元素var ad = document.getElementsByClassName("ad")[0];var adtop = ad.offsetTop;window.onscroll = function () {var stop = scroll().topanimate(ad, stop + adtop);// console.log(ad.style.top);}//缓动动画封装function animate(ele, target) {clearInterval(ele.timer);ele.timer = setInterval(function () {var step = (target - ele.offsetTop) / 10;step = step > 0 ? Math.ceil(step) : Math.floor(step);ele.style.top = ele.offsetTop + step + "px";console.log(1);if (Math.abs(target - ele.offsetTop) < Math.abs(step)) {ele.style.top = target + "px";clearInterval(ele.timer);}}, 25);}// scroll的封装function scroll() {return {"top": window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop,"left": window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft}}}</script>

html和css部分

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>两侧广告栏js原生代码实现</title><style>*{padding: 0;margin: 0;}.box{position: relative;}.ad{width: 100%;position: absolute;top: 150px;}.box-left{float: left;width: 150px;height: 300px;background-color: #aaa;}.box-right{width: 150px;height: 300px;background-color: #aaa;float: right;}</style></head>
<body><div class="box" style="height: 5000px"><div class="ad"><div class="box-left"></div><div class="box-right"></div></div></div>
</body>
</html>

JavaScript原生实现广告栏滑动相关推荐

  1. javascript 原生得到document.Element的方法

    今天这里写这个博客的主要目的是记录一下javascript原生的选择dom的集中方法. 1.document.getElementById.这个方法接收1个参数,就是DOM元素的id(区分大小写),这 ...

  2. javascript原生事件句柄、BOM、DOM对象属性方法总结

    javascript原生事件句柄.BOM.DOM对象属性方法总结 JS事件句柄 事件句柄 类型 说明 onabort 事件句柄 图像加载被中断 onblur 事件句柄 元素失去焦点 onfocus 事 ...

  3. Javascript实现的左右滑动菜单

    原文链接:http://www.cnblogs.com/miqi2214/archive/2009/04/28/1445308.html Javascript实现的左右滑动菜单 先看Demo便于理解: ...

  4. JavaScript原生添加移除class的方法

    转载自  JavaScript原生添加移除class的方法 1.JavaScript原生移除class方法 window.onload = function () {var stamp = docum ...

  5. JavaScript原生实现《贪吃蛇》

    概述 JavaScript原生实现<贪吃蛇>,每吃掉一个食物,蛇的身体会变长,食物会重新换位置. 详细 代码下载:http://www.demodashi.com/demo/10728.h ...

  6. javascript原生事件总结

    javascript原生的事件,总结了一下,包括事件流.处理函数.事件对象这几样东西.而在兼容性方面,主要是老牌ie8以及以下和现代浏览器的差异,也就是ie和DOM事件标准的差异. 事件流 这个事件流 ...

  7. javascript原生初级到非凡-姜威-专题视频课程

    javascript原生初级到非凡-248人已学习 课程介绍         本套课程是<初级的前端工程师系列课程>中重要的一部课程,课程需要有HTML5+CSS3基础来学习,课程从初级入 ...

  8. javascript 原生类 DOMParser 把 字符串格式的HTML文档源码 转换成 document DOM对象

    文章目录 Intro QA DOMParser 在 console 的使用 cheerio 在 node 项目中的使用 Reference 测试 sum Intro 有一天我在写爬虫. 其实也说不上是 ...

  9. JavaScript原生代码编写选项卡Tab页跳转功能

    本文主要介绍使用 JavaScript 原生代码编写选项卡Tab页的跳转功能. 一.先来看看效果图 二.准备文字素材 文字素材选择诗经里面的三首古诗,分别是关雎.蒹葭和采薇 <关雎> 关关 ...

最新文章

  1. 2019年9月2日开学!寒假时间也定了……
  2. 【极客blog图文讲解】ruby以及Jekyll的环境配置(针对mac linux)
  3. Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from it
  4. 关于js复制文本信息(按钮级别)
  5. ireport修改jrxml中的sql语句_SQL中的create table与insert into语句
  6. python不支持prelu_MTCNN(九)更改python与c代码的PReLU为ReLU
  7. 同事更新几个表_无法抵挡的帅气!西铁城潮酷光动能表
  8. matlab主要数据预处理函数,Matlab 神经网数据预处理的函数
  9. html盒子优先级设置,CSS 基础(盒模型、选择器、权重、优先级)
  10. HTML请选择编程,html – 设计选择标记
  11. Java爬坑--集合(二)List
  12. IT常用职位缩写总结
  13. Node.js模拟登录强智科技教务系统
  14. 7月26日 select单表查询基础语句
  15. 小程序跳转小程序,小程序跳转公众号,小程序跳转h5
  16. ChatGPT所有插件详细教程
  17. 阿里再发10亿助农,店宝宝:中小卖家喜迎流量红利
  18. Git - 版本穿梭(时光穿梭机)
  19. Unity中让游戏对象消失或隐藏的几种方法
  20. 使用管程法解决生产者消费者问题

热门文章

  1. 2022年黑龙江最新建筑八大员(标准员)模拟考试试题及答案
  2. 你始终欠自己一个努力的模样
  3. TAM的API文件生成命令
  4. 3D Touch大法
  5. 40岁男人娶20岁女孩
  6. 输入出租车类型和里程,计算打车的费用。
  7. delphi xe “[FIREDAC][PHYS][SQLITE] DATABASE IS LOCKED”错误
  8. h5页面使用js实现图片上传(安卓用户也可拍摄、相册二选一)
  9. DEV pivotGridControl 单元格内容变色
  10. 路遥《早晨从中午开始》读后感