css hover遮罩层
马上月底了, 这个月忙于工作和生活, 没有很好的写一篇博客, 有点忧伤. 为了弥补, 就写点简单的.
最近项目有个需求, 就是鼠标移入的时候显示一个层, 移除的时候这个层消失. 当然层是可以点击进行额外操作的.
项目用的是react,最开始使用的是mounseenter和mounseleave事件, 结果吧出现了点击进入另外一个路由后,再次点击回来后, 鼠标在元素上, 确没有再出现浮层. 这就有尴尬了.
当时还想用的是事件, 但想想现在css3鼠标事件, 动画, 伪类选择器这么成熟了. 额外去搜素了解了一下, 自己似乎以前看到过相关文章.
后来发现hover这个伪类 确实可以是比较帅. 当然只能控制子元素(大家这么说, 我等有时间还是好好琢磨琢磨).
基本实现蒙层, 就是蒙层设置为绝对定位, 默认是隐藏, hover的时候,显示出来,基本就是这样. mounseenter和mounseleave的防范, 你很快的移动的时候, 总是会有点莫名的问题出来. 这个简直就是救星一个了.
代码基本结构就是如此了.
<style type="text/css">
.container{
width:400px;height:200px;
background-color: blueviolet
}
.layer{
background-color:#8bb907;
display:none;
height: 100%;
width: 100%;
text-align: center;
}
.container:hover .layer{display:block;}
</style>
<body>
<div class="container">
<div class="layer">
<a href="http://www.baidu.com">百度</a>
</div>
</div>
</body>
另外一个就是img默认图片加载失败的问题, 我开始很自信的写下了
<img src={item.src|| 'http://xxxxxx.png'} alt="美女图片"/>
结果你会发现, src地址不正确或者加载失败的时候就愣是尴尬了, 怎么办,
如下就是更好的方案,如果加载失败,就显示默认的.
<img src={item.src} alt="美女图片" onError={ev=>ev.target.src= "htpp://xxxxx.png"} />
有人说, 哦, 如此啊, 其实还没完. 如果你的默认图片失败了怎么办, 是不是一直在重复加载呢. 哈哈, 明白了吧.
另外再添加一个, ctrl + click 会把链接地址新窗口打开. 这本身没啥问题,我们项目本身是一个SPA的应用结合electron. 通过react-router来实现多页面.
而react-router实现路由的原理就是a标签. 这就尴尬了.
ctrl + click会弹出新窗口, 这............, 不要慌.
preJudgment = ev => {
// ctrl + 左键
return ev.ctrlKey && ev.button === 0 && ev.preventDefault()
}
<NavLink exact onClick={this.preJudgment} to={'/path'}></a>
如上就能解决问题, 虽然官网NavLink并没有提供这onClick的说明.
基本的思路就是判断是不是按下 ctrl + 鼠标左键, 组件默认行为.
为了更加保险, 你可以electron监听窗口打开事件, 多重保险.
css hover遮罩层的更多相关文章
- CSS常用遮罩层
为什么80%的码农都做不了架构师?>>> CSS常用遮罩层 应用场景: 上传了一张图片,鼠标移入到图片上的时候显示遮罩层,并且提示点击删除. 通过改变遮罩层的透明度来实现显示隐藏 ...
- css实现遮罩层,父div透明,子div不透明
使用元素的opacity 属性,设置遮罩层的效果, 主要 样式是:background-color: #ooo; opacity:0.3; <div style="width:500p ...
- css实现遮罩层(解决透明背景上的文字不透明)
.PopUp_layer{ position:fixed; top: 0; left: 0; right:0; bottom:0; width:100%; height:1 ...
- jquery图片放大镜和遮罩层效果
图片放大镜效果将借助于jqzoom插件,遮罩层借助于thickbox插件. 1.引入样式表 /*整体样式*/ <link rel="stylesheet" href=&quo ...
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...
- 如何在Vue中,当鼠标hover上元素时,给元素加遮罩层
介绍 当鼠标hover 上元素时,给元素加一层遮罩层. 效果图 使用 import VueHoverMask from 'vue-hover-mask' export default { compon ...
- Css动画形式弹出遮罩层,内容区上下左右居中于不定宽高的容器中
<!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...
- jQuery+CSS 简单代码实现遮罩层( 兼容主流浏览器 )
/* ** jQuery版本:jQuery-1.8.3.min.js ** 浏览器:Chrome( v31.0.1650.63 m ),IE11,Firefox( v32.0.1 ),IETester ...
- html+css源码之实现登录弹出框遮罩层效果
在web开发中,很多网站都做了一些特别炫丽的效果,比如用户登录弹框遮罩层效果,本文章向大家介绍css如何实现登录弹出框遮罩层效果,需要的朋友可以参考一下本文章的源代码. html+css实现登录弹出框 ...
随机推荐
- 【Golang】幽灵变量(变量覆盖)问题的一劳永逸解决方法
背景 在我们公司,测试定位问题的能力在考核中占了一定的比例,所以我们定位问题的主动性会比较高.因为很多开发同学都是刚开始使用golang,所以bug频出,其中又以短变量声明语法导致的错误最多.所以就专 ...
- bcompare Linux版 无限试用
需要root权限. # mv /usr/bin/bcompare /usr/bin/bcompare.real # cat /usr/bin/bcompare #!/bin/sh rm " ...
- Python3 基本语法学习
1.查看Python版本及打印“Hellow World!”: 需要注意的是:在打印“Hello World”之前一定要先执行 python,否则会报无法 “无法初始化设备 PRN”,如图: 2.查看 ...
- .net 获取邮箱邮件列表和内容
需求: 最近项目里遇到了个问题,对方没有提供直接获取数据源的api接口,而是通过邮件发数据的.这就需要接收邮件后解析邮件内容获得数据. 分析: 想在代码里实时获取邮件,可以通过邮件的几个协议来实现,常 ...
- nyoj-310-河南省第四届省赛题目-二分+dinic
SECRET 时间限制:3000 ms | 内存限制:65535 KB 难度:6 描述 Dr.Kong is constructing a new machine and wishes to ...
- Oracle OAF 应用构建基础之实现控制器 (转)
原文地址: Oracle OAF 应用构建基础之实现控制器 设计一个OA Controller 如OA Framework Page解析中所描述的,OA Controller定义了web beans的 ...
- vuex2.0+两个小例子
首先vuex概念比较多,一定要搞懂里面的概念,可以参考官网Vuex2.0概念,我写此文的目的是希望能对前端爱好者提供个参考,加深对vuex2.0各核心概念的理解. 废话少说,直接上干货.这是官网上的一 ...
- AOJ2025 Eight Princes
我们查看更一般的情况,设人数为m 则n < m * 2无解 然后n为奇数的情况: 我们把一个人和一个空格打包,于是剩下m个"人"和n - m个空格,随便排列这些"人 ...
- Awk 从入门到放弃(2)– 分隔符 学习笔记
转:http://www.zsythink.net/archives/1336 学习输入分隔符FS及输出分隔符OFS 通过-v 修改内置的变量,在$1 $2 之间不指定 ‘,’, 会做合并输出.
- js弹窗那些事
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...