自己查资料总结的两种方法

一、纯css改变

  a:hover:before{left:-20%;}
  a:hover:after{right:-20%;}
  a:before{ left:-100%; }
  a:after{ right:-100%; }
利用元素名:hover:before{改变的样式内容},当鼠标移到该元素上时,伪元素的样式进行改变,hover和before之间一定不能有空格,这里连写在一起是代表并,and的意思,在css中没有and关键词,
用连写方式代替,例如:not(:first-child)表示非第一个子元素。
这个方法不会动态增加代码量,但是只能鼠标悬浮事件,
点击事件能用:target,但是这个属性的兼容性不好
:target定义和用法

URL 带有后面跟有锚名称 #,指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element)。

:target 选择器可用于选取当前活动的目标元素。

 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body,div,p,a{margin: 0;padding: 0;}
body{background: #00AA88}
div{
/*外面框框的div样式*/
width: 200px;
position: relative;
overflow: hidden;
height: 150px;
}
a{ display: inline-block; }
a:before,a:after{
/*动态加载的元素*/
content:"";
display: inline-block;
position: absolute;
width: 70%;
height:100%;
transform: skewX(20deg);
background: #fff;
opacity: 0.3;
transition: all .3s linear;
top:0;
}
p{
/*里面框的样式*/
background: #003eff;
display: inline-block;
width: 200px;
height: 150px;
}
a:hover:before{left:-20%;}
a:hover:after{right:-20%;}
a:before{ left:-100%; }
a:after{ right:-100%; } </style>
</head>
<body>
<div id="d1" class="w">
<a id="i" href="#" class="a1">
<p></p>
</a>
</div>

二、用js改变样式
$('<style> a:before{left:-100%;} a:after{right:-100%;} </style>').appendTo('head')
这个方法可以用于用于任何事件,但是有个不好的地方,会在head上面一直增加代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body,div,p,a{margin: 0;padding: 0;}
body{background: #00AA88}
div{
/*外面框框的div样式*/
width: 200px;
position: relative;
overflow: hidden;
height: 150px;
}
a{ display: inline-block; }
a:before,a:after{
/*动态加载的元素*/
content:"";
display: inline-block;
position: absolute;
width: 70%;
height:100%;
transform: skewX(20deg);
background: #fff;
opacity: 0.3;
transition: all .3s linear;
top:0;
}
p{
/*里面框的样式*/
background: #003eff;
display: inline-block;
width: 200px;
height: 150px;
}
/*a:hover:before{left:-20%;}*/
/*a:hover:after{right:-20%;}*/
a:before{ left:-100%; }
a:after{ right:-100%; } </style>
</head>
<body>
<div id="d1" class="w">
<a id="i" href="#" class="a1">
<p></p>
</a>
</div>
<script src="js/jquery-1.11.3.js"></script>
<script>
var b=$("a:before");
var a=$("#i");
a.hover(function () {
$('<style>a:before{left:-20%;} a:after{right:-20%;} </style>').appendTo('head')
},function () {
$('<style> a:before{ left:-100%; } a:after{ right:-100%; } </style>').appendTo('head')
})
</script>
</body>
</html>
 

动态改变伪元素样式的方(用:after和:before生成的元素)的更多相关文章

  1. js动态改变css伪类样式

    首先我们来看下页面上需要实现的基本效果,如下图所示: 因此我们可以使用如下js代码来试试看,是否能使用js改变伪类?如下代码所示: $(function() { $('.listnav li').cl ...

  2. jQuery如何改变css伪元素样式

    首先我们看一下css伪元素是什么: CSS 伪元素用于向某些选择器设置特殊效果. 伪元素有哪些: :first-line 伪元素:"first-line" 伪元素用于向文本的首行设 ...

  3. 周记5——随机撒花特效、动态修改伪元素样式、contenteditable属性、手机端调试利器VConsole、浏览器端debug调试

    记录一些小零碎知识点,以便日后查看~ 1.随机撒花特效 教师节快到了,公司的产品提出一个需求:在IM(即时聊天)聊天界面弹出教师节的祝福“广告”,用户点击“发送祝福”按钮,聊天界面会随机撒花.这里的重 ...

  4. Windows Phone 动态改变ListBox样式

    使用ListBox时通常会借助ItemTemplate帮助我们实现更复杂多样的样式显示,体现了Xaml的灵活.如何动态改变变ListBox的样式,实现类似电脑资源管理器中列表显示和图标显示形式的替换. ...

  5. 微信小程序,动态改变样式

    小程序目前没有修改样式api,但是可以利用数据绑定实现动态改变样式,可以用view标签模拟page然后改变view标签的样式,以下案例演示了如果改变page背景颜色: <view class=& ...

  6. css:hover状态改变另一个元素样式的使用

    效果演示 css:hover状态改变另一个元素样式的使用 .box { width: 150px; height: 150px; background-color: #069; line-height ...

  7. vue点击时动态改变样式 ------- 最简单的方法

    vue点击时动态改变样式 template中 <li :class="{ active:index==isActive }" @click="changeValue ...

  8. js 输出语句document.write()及动态改变元素中内容innerHTML的使用

    操作 HTML 元素 如需从 JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法. 请使用 "id" 属性来标 ...

  9. jquery动态改变元素内容

    ● text() - 设置或返回所选元素的文本内容 ● html() - 设置或返回所选元素的内容(包括 HTML 标记) ● val() - 设置或返回表单字段的值(只针对表单或者输入框)

随机推荐

  1. springboot + shiro + mysql + mybatis 工程快速搭建

    1. 新建 springboot 工程 2. 随便起个名字 3. 初始化工程 4. 导入 shiro 和 thymeleaf 依赖 <!-- thymeleaf依赖 --> <dep ...

  2. 设备树(device tree)学习笔记【转】

    转自:https://www.cnblogs.com/pengdonglin137/p/4495056.html 阅读目录(Content) 1.反编译设备树 2.分析工具fdtdump 3.Linu ...

  3. 安装fiddler后,willow安装

    willow 安装需要与fiddler安装在同一个磁盘,如果出现报错找不到路径,请按下面地址下载willow后重新安装 willow下载地址: https://github.com/QzoneTouc ...

  4. Python xlwt模块写Excel问题集合

    1.数字转换成汉字 数据库查询返回结果为多元组,在写入Excel需要判断,数据库查询结果是否为数字,为数字的话需要将其转换成对应的汉字,此时元组不可修改,所以需要将返回结果修改成列表.实现可以在数据库 ...

  5. ue4 FString 中文乱码问题

    使用FString出现乱码,最简单的情况,FString Str = "你好"; 这时候就会出现乱码,解决方法是改成这样 FString Str = TEXT("你好&q ...

  6. 1. Vue - ES6

    一.ES6部分知识点 1. 变量声明 <!-- var声明变量,导致变量提升 --> var name = 'ruanyifeng' function func(){ console.lo ...

  7. [C1W3] Neural Networks and Deep Learning - Shallow neural networks

    第三周:浅层神经网络(Shallow neural networks) 神经网络概述(Neural Network Overview) 本周你将学习如何实现一个神经网络.在我们深入学习具体技术之前,我 ...

  8. LG3205/BZOJ1996 「HNOI2010」合唱队 区间DP

    区间DP 区间DP: 显然是一个区间向左右拓展形成的下一个区间,具有包含关系,所以可以使用区间DP. 状态设计: 考虑和关路灯一样设计状态 因为不知道当前这个区间是从哪个区间拓展而来,即不知道这个区间 ...

  9. tornado的使用-日志篇

    tornado的使用-日志篇

  10. JAVAWeb入门之JSP基础知识

    也是到了考试周,很多课都结了,准备去学点新东西.随后就开始自学JAVAWeb. 要学习JAVAWeb,首先需下面的知识: a)      HTML/CSS/JS(前端页面),XML,JSON,vue ...