分享菜单效果

分享菜单效果:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>分享菜单</title>
 6         <style>
 7             #div1{width: 100px; height: 200px; background-color: #ccc;position: absolute; left: -100px}
 8             #div1 span{width: 20px; height: 60px; background-color: yellow; position: absolute; line-height: 20px; left: 100px;top: 70px}
 9         </style>
10         <script>
11             window.onload = function(){
12                 var oDiv = document.getElementById("div1");
13                 oDiv.onmouseover = function(){
14                     //-100 > 0
15                     startMove();
16                 }
17 
18                 oDiv.onmouseout = function(){
19                     //0 > -100
20                     startMove2();
21                 }
22             }
23 
24             var timer = null;
25             //使div出来的函数
26             function startMove(){
27                 var oDiv = document.getElementById("div1");
28                 clearInterval(timer);
29                 var speed = 5;
30                 timer = setInterval(function(){
31                     if(oDiv.offsetLeft == 0){
32                         clearInterval(timer);
33                     }else{
34                         oDiv.style.left = oDiv.offsetLeft + speed + "px";
35                     }
36                 }, 30);
37             }
38             //使div隐藏的函数
39             function startMove2(){
40                 var oDiv = document.getElementById("div1");
41                 clearInterval(timer);
42                 var speed = -5;
43                 timer = setInterval(function(){
44                     if(oDiv.offsetLeft == -100){
45                         clearInterval(timer);
46                     }else{
47                         oDiv.style.left = oDiv.offsetLeft + speed + "px";
48                     }
49                 }, 30);
50             }
51         </script>
52     </head>
53     <body>
54         <div id = "div1">
55 <!--             span必须写到要隐藏的里面,不然隐藏到里面后,鼠标就没有
56             办法点到了,也就没办法出来了,让span相对于div定位定出来,
57             然后,鼠标移到span上的时候,因为事件冒泡的存在,也就相当于
58             移动了div上。
59              -->            
60              <span>分享到</span>
61         </div>
62     </body>
63 </html>

浏览器效果:

上面的两个startMove函数大部分都是相同的,加形参加以简化。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>分享菜单_简化</title>
 6         <style>
 7             #div1{width: 100px; height: 200px; background-color: #ccc;position: absolute; left: -100px}
 8             #div1 span{width: 20px; height: 60px; background-color: yellow; position: absolute; line-height: 20px; left: 100px;top: 70px}
 9         </style>
10         <script>
11             window.onload = function(){
12                 var oDiv = document.getElementById("div1");
13                 oDiv.onmouseover = function(){
14                     //-100 > 0
15                     startMove(5, 0);
16                 }
17 
18                 oDiv.onmouseout = function(){
19                     //0 > -100
20                     startMove(-5, -100);
21                 }
22             }
23 
24 
25             //两个合二为一
26             var timer = null;
27             function startMove(speed, iTarget){
28                 var oDiv = document.getElementById("div1");
29                 clearInterval(timer);
30                 timer = setInterval(function(){
31                     if(oDiv.offsetLeft == iTarget){
32                         clearInterval(timer);
33                     }else{
34                         oDiv.style.left = oDiv.offsetLeft + speed + "px";
35                     }
36                 }, 30);
37             }
38 
39 
40         </script>
41     </head>
42     <body>
43         <div id = "div1">
44             <span>分享到</span>
45         </div>
46     </body>
47 </html>

形参能用一个就不用俩,再加以简化:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>分享菜单_究极版</title>
 6         <style>
 7             #div1{width: 100px; height: 200px; background-color: #ccc;position: absolute; left: -100px}
 8             #div1 span{width: 20px; height: 60px; background-color: yellow; position: absolute; line-height: 20px; left: 100px;top: 70px}
 9         </style>
10         <script>
11             window.onload = function(){
12                 var oDiv = document.getElementById("div1");
13                 oDiv.onmouseover = function(){
14                     //-100 > 0
15                     startMove(0);
16                 }
17 
18                 oDiv.onmouseout = function(){
19                     //0 > -100
20                     startMove(-100);
21                 }
22             }
23 
24             var timer = null;
25             function startMove(iTarget){
26                 var oDiv = document.getElementById("div1");
27                 var speed = null;
28                 clearInterval(timer);
29                 timer = setInterval(function(){
30                     //判断速度的正负
31                     if(oDiv.offsetLeft < iTarget){
32                         speed = 5;
33                     }else{
34                         speed = -5;
35                     }
36                     if(oDiv.offsetLeft == iTarget){
37                         clearInterval(timer);
38                     }else{
39                         oDiv.style.left = oDiv.offsetLeft + speed + "px";
40                     }
41                 }, 30);
42             }
43 
44 
45         </script>
46     </head>
47     <body>
48         <div id = "div1">
49             <span>分享到</span>
50         </div>
51     </body>
52 </html>

 

效果都同上。

 

转载于:https://www.cnblogs.com/taohuaya/p/9623740.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue axios解决post传参数问题

我相信遇到这个问题的兄弟们&#xff0c;不带参数的情况下都是没有问题吧&#xff0c; 如果有问题&#xff0c;百度吧&#xff0c;好解决&#xff0c;答案都比较靠谱 这里主要针对带参数的情况&#xff0c;坑多 另外&#xff0c;我默认你用postman带参测试接口是没问题的 不…

Spring Boot实践——基础和常用配置

借鉴&#xff1a;https://blog.csdn.net/j903829182/article/details/74906948 一、Spring Boot 启动注解说明 SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能。实际上&#xff0c; SpringBootApplication将三个有用的注解组合在了一起。 Spring的Co…

[css] 什么是hack?css的hack有哪些?

[css] 什么是hack&#xff1f;css的hack有哪些&#xff1f; 一、总结 1、CSS hack&#xff1a;由于不同厂商的浏览器&#xff0c;比如Internet Explorer,Safari,Mozilla Firefox,Chrome等&#xff0c;或者是同一厂商的浏览器的不同版本&#xff0c;如IE6和IE7&#xff0c;对CS…

Element组件 Drawer 抽屉的关闭问题

场景 我使用的Drawer 抽屉是从上往下开的效果&#xff0c;点击搜索图标&#xff0c;从上往下开没问题&#xff0c;输入关键字搜索&#xff0c;搜索出来的列表放置于搜索栏下面&#xff0c;所以使用了一个子组件 问题就来了 搜出来的列表item&#xff0c;点击任意一条&#x…

First Steps with TensorFlow代码解析

注&#xff1a;本文的内容基本上都摘自tensorflow的官网&#xff0c;只不过官网中的这部分内容在国内访问不了&#xff0c;所以我只是当做一个知识的搬运工&#xff0c;同时梳理了一遍&#xff0c;方便大家查看。本文相关内容地址如下&#xff1a; https://developers.google.c…

宝塔nginx运行vue项目刷新404问题解决

我的项目是webpack构建的&#xff0c;因为我做一切开发都想要希望要从一个标准的构建去编码 所以&#xff0c;我的项目在node下运行&#xff0c;开发&#xff0c;调试是没有一点问题的&#xff0c;npm run build也是完全OK的&#xff0c;vue路由是history模式 把build出来的d…

vscode设置中文,设置中文不成功问题

刚安装好的vscode界面显示英文&#xff0c;如何设置中文呢&#xff1f; 在locale.json界面设置”locale":"zh-cn"也未能实现界面为中文&#xff0c;在网上找了参考了&#xff0c;以下教程真实测试有效&#xff01; 首先&#xff1a; 下载插件&#xff1a;Chines…

网页Request Headers请求头和Response Headers响应头

Request Headers Accept:告诉服务器&#xff0c;客户机支持的数据类型 Accept-Encoding:告诉服务器&#xff0c;客户机支持的数据压缩格式 Cache-Control&#xff1a;缓存控制&#xff0c;服务器通过控制浏览器要不要缓存数据 Connection:处理完这次请求&#xff0c;是断开…

springboot+jpa+mysql+redis+swagger整合步骤

springbootjpaMySQLswagger框架搭建好之上再整合redis&#xff1a; 在电脑上先安装redis&#xff1a; 一、在pom.xml中引入redis 二、在application.yml里配置redis&#xff0c;单独说明&#xff1a;redis刚一开始安装好是没有设置密码的。否则&#xff0c;会报connection错误。…

python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)

我是从这篇博客中&#xff08;https://blog.csdn.net/zwq912318834/article/details/79571110&#xff09;了解的一点基础东西&#xff0c;代码都是从这篇博客里面的源代码直接复制过去测试和学习的。 遇到的问题&#xff1a; 1、返回状态码&#xff1a;502——百度得知这是一…

ACM-ICPC 2018 焦作赛区网络预赛 H题 String and Times(SAM)

Now you have a string consists of uppercase letters, two integers AA and BB. We call a substring wonderful substring when the times it appears in that string is between AA and BB (A \le times \le BA≤times≤B). Can you calculate the number of wonderful sub…

[css] css的height:100%和height:inherit之间有什么区别呢?

[css] css的height:100%和height:inherit之间有什么区别呢&#xff1f; 上周在微博上无节操吐槽了下inherit的段子&#xff0c;没想到回声还不少&#xff1a; 微博inherit无节操段子 不过inherit确实是个好东西&#xff0c;不仅节约代码&#xff0c;尤其与background之流打交…

http详解 请求报文格式和响应报文格式

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 HTTP 工作原理 超文本传输协议(Hypertext Transfer Protocol&#xff0c;简称HTT…

【LeetCode】拓扑排序

【207】 Course Schedule 排课问题&#xff0c;n门课排课&#xff0c;有的课程必须在另外一些课程之前上&#xff0c;问能不能排出来顺序。 题解&#xff1a;裸的拓扑排序。参考代码见算法竞赛入门指南这本书。 1 class Solution {2 public:3 bool dfs(const vector<vec…

pycharm中更新pip版本的问题

经常使用Python的都知道pip&#xff0c;但有时候&#xff0c;下载某个模块不成功&#xff0c;提示信息如下 pytharm查看自带的pip版本 解决方式一&#xff1a; pytharm的terminal里卸载pip再安装pip 如果还不行&#xff0c;解决方式二 去你当前的项目路径下找到lib文件夹下的…

小程序的wx.onAccelerometerChange

https://www.2cto.com/kf/201802/724174.html&#xff08;copy&#xff09; 也许有人会问&#xff0c;小程序中都是竖直app形态&#xff0c;要横竖屏判断有什么用?即使判断出了横屏状态&#xff0c;你能把小程序横过来?答案是不能的&#xff0c;但是判断当前设备处于横屏或者…

Django通过中间件实现登录验证demo

前提&#xff1a;中间件版的登录验证需要依靠session&#xff0c;所以数据库中要有django_session表。 1 from django.conf.urls import url2 from django.contrib import admin3 from app01 import views4 5 urlpatterns [6 url(r^admin/, admin.site.urls),7 url(r^…

Python爬虫自学之第(③)篇——实战:requests+BeautifulSoup实现静态爬取

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 前篇全片都是生硬的理论使用&#xff0c;今天就放个静态爬取的实例让大家体验一下B…

Python爬虫自学之第(④)篇——强大的正则表达式,re模块

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 如果把BeautifulSopu比喻成通过线索一步步接近目标的侦探的话&#xff0c;那么正则…

Python爬虫自学之第(⑤)篇——爬取某宝商品信息

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 能看到这里说明快进入动态网页爬取了&#xff0c;在这之前还有一两个知识点要了解&…