❝一个人只要多笑
就会变得很幸福
❞
前言
每次打开浏览器,就会跳出好多广告,真是不胜其烦。
某天突然醒悟:过去那些挨家挨户上门推销产品的推销员,就是弹窗广告的原型吧?
弹出的不一定都是广告,搞不好是优惠呢?
动动手指,薅一薅羊毛不好吗,O(∩_∩)O
1 Popover
三角形 triangle
代码片段
/* 宽高为0,四个边界透明 */
.el-popper .popper__arrow,
.el-popper .popper__arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
/* 上边界为深灰色 */
.el-popper[x-placement^=top] .popper__arrow {
bottom: -6px;
left: 50%;
margin-right: 3px;
border-top-color: #ebeef5;
border-bottom-width: 0;
}
/* 上边界为白色即背景色,且相对向上偏移1px */
.el-popper[x-placement^=top] .popper__arrow:after {
bottom: 1px;
margin-left: -6px;
border-top-color: #fff;
border-bottom-width: 0;
}
/* 加上投影 */
.el-popper .popper__arrow {
border-width: 6px;
filter: drop-shadow(0 2px 12px rgba(0,0,0,.03));
}
技巧解析
❝三角形,不规则图形呀,怎么搞?
❞
既然一个不规则,拼一下呗,给你四个三角形,是不是就规则了呀^_^
宽高为0的border盒子怎么表现呢?
不正好是4个三角形拼的么
所以,隐藏3个,显示一个,就可以了
那么带边界怎么办?
再加一个△偏移1px覆盖呀
那么,带阴影呢?
这个,这个,有drop-shadow
哈哈
用CSS画一个带阴影的三角形 传送门
border属性实现自适应三角形 传送门
可聚焦 focusable
代码片段
if (this.trigger === 'click') {
...
} else if (this.trigger === 'hover') {
...
} else if (this.trigger === 'focus') {
if (this.tabindex < 0) {
console.warn('[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key');
}
if (reference.querySelector('input, textarea')) {
on(reference, 'focusin', this.doShow);
on(reference, 'focusout', this.doClose);
} else {
on(reference, 'mousedown', this.doShow);
on(reference, 'mouseup', this.doClose);
}
}
技巧解析
❝怎么模拟focus呢?
❞
首先的能够focus吧,即focusable
什么你不知道focusable??
别怕,传送门已为你准备好
然后呢,输入框直接focus
如果没法foucs,只好mousedown了
说说focusin/focusout事件 传送门
「晴天里」
「总觉得自己住在孩子气的世界里」
参考链接
往期回顾
- 跟随Element学习Vue小技巧(1)——Layout
- 跟随Element学习Vue小技巧(2)——Container
- 跟随Element学习Vue小技巧(7)——Button
- 跟随Element学习Vue小技巧(8)——Link
- 跟随Element学习Vue小技巧(9)——Radio
- 跟随Element学习Vue小技巧(10)——Checkbox
- 跟随Element学习Vue小技巧(11)——Input
- 跟随Element学习Vue小技巧(12)——InputNumber
- 跟随Element学习Vue小技巧(13)——Select
- 跟随Element学习Vue小技巧(14)——Cascader
- 跟随Element学习Vue小技巧(15)——Switch
- 跟随Element学习Vue小技巧(16)——Slider
- 跟随Element学习Vue小技巧(17)——TimePicker
- 跟随Element学习Vue小技巧(18)——DatePicker
- 跟随Element学习Vue小技巧(20)——Upload
- 跟随Element学习Vue小技巧(21)——Rate
- 跟随Element学习Vue小技巧(23)——Transfer
- 跟随Element学习Vue小技巧(24)——Form
- 跟随Element学习Vue小技巧(25)——Table
- 跟随Element学习Vue小技巧(26)——Tag
- 跟随Element学习Vue小技巧(27)——Progress
- 跟随Element学习Vue小技巧(28)——Tree
- 跟随Element学习Vue小技巧(29)——Pagination
- 跟随Element学习Vue小技巧(31)——Avatar
- 跟随Element学习Vue小技巧(33)——Loading
- 跟随Element学习Vue小技巧(34)——Message
- 跟随Element学习Vue小技巧(36)——Notification
- 跟随Element学习Vue小技巧(37)——Menu
- 跟随Element学习Vue小技巧(38)——Tabs
- 跟随Element学习Vue小技巧(39)——Breadcrumb
- 跟随Element学习Vue小技巧(41)——Dropdown
- 跟随Element学习Vue小技巧(42)——Steps
- 跟随Element学习Vue小技巧(43)——Dialog
- 跟随Element学习Vue小技巧(44)——Tooltip