Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
5f2cd216
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
6005
Star
91
Fork
164
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5f2cd216
编写于
9月 16, 2023
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调整INode为Elemen
上级
01482578
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
32 addition
and
32 deletion
+32
-32
pages/template/drop-card/card/card.uvue
pages/template/drop-card/card/card.uvue
+20
-20
pages/template/pull-zoom-image/pull-zoom-image.uvue
pages/template/pull-zoom-image/pull-zoom-image.uvue
+12
-12
未找到文件。
pages/template/drop-card/card/card.uvue
浏览文件 @
5f2cd216
...
...
@@ -21,7 +21,7 @@
export default {
data() {
return {
$
nodeMap:new Map<string, INode
>(),
$
elementMap:new Map<string, Element
>(),
x: 0 as number,
y: 0 as number,
// 飘走的卡片计数
...
...
@@ -59,8 +59,8 @@
// TODO 需要延迟设置才能生效
setTimeout(()=>{
this.set
INode
Style('card','height', screenHeight * 0.7 + 'px');
this.set
INode
Style('card-img','height', screenHeight * 0.7 + 'px');
this.set
Element
Style('card','height', screenHeight * 0.7 + 'px');
this.set
Element
Style('card-img','height', screenHeight * 0.7 + 'px');
this.initCardStyle()
},200)
...
...
@@ -74,20 +74,20 @@
initCardStyle(){
let _index = (this.cardIndex + this.floatCount)%3
// console.log('~~~~~~_index:'+_index + ' cardIndex:'+this.cardIndex+' floatCount:'+this.floatCount);
this.set
INode
Style('card','z-index', _index)
this.set
INode
Style('card','margin-top', screenHeight * 0.15 - 30 * _index + 'px');
this.set
INode
Style('card','transform', 'scale('+(0.9 + 0.05 * _index)+')')
this.set
Element
Style('card','z-index', _index)
this.set
Element
Style('card','margin-top', screenHeight * 0.15 - 30 * _index + 'px');
this.set
Element
Style('card','transform', 'scale('+(0.9 + 0.05 * _index)+')')
},
// 工具方法,用于快速设置
INode
的 style
set
INode
Style(refName:string,propertyName : string, propertyStyle : any) : void {
let
node : INode | null = this.$node
Map.get(refName)
if(
node
== null){
node = this.$refs.get(refName) as INode
;
this.$
nodeMap.set(refName,node
)
// 工具方法,用于快速设置
Element
的 style
set
Element
Style(refName:string,propertyName : string, propertyStyle : any) : void {
let
element : Element | null = this.$element
Map.get(refName)
if(
element
== null){
element = this.$refs.get(refName) as Element
;
this.$
elementMap.set(refName,element
)
}else{
// console.log('直接拿');
}
node
?.style?.setProperty(propertyName, propertyStyle);
element
?.style?.setProperty(propertyName, propertyStyle);
},
touchstart(e : TouchEvent) {
// console.log('touchstart')
...
...
@@ -160,13 +160,13 @@
if(k.toInt() != 0){
cardTo(k * screenWidth * 1.3, this.y * 3,()=>{
// 状态图标变回透明
this.set
INode
Style("state-icon-like",'opacity', 0)
this.set
INode
Style("state-icon-dislike",'opacity', 0)
this.set
Element
Style("state-icon-like",'opacity', 0)
this.set
Element
Style("state-icon-dislike",'opacity', 0)
// 设置为透明,防止飘回时因为 margin-top 太高,露出来
this.set
INode
Style("card",'opacity', 0)
this.set
Element
Style("card",'opacity', 0)
setTimeout(()=>{
this.set
INode
Style("card",'opacity', 1)
this.set
Element
Style("card",'opacity', 1)
},300)
// 执行卡片飘动后事件,注意uni.$emit是全局事件。其他卡片也会执行
...
...
@@ -185,12 +185,12 @@
}
},
moveCard() {
this.set
INode
Style("card",
this.set
Element
Style("card",
'transform',
`translate(${this.x}px,${this.y}px) rotate(${this.x/-30}deg) scale(1)`
)
this.set
INode
Style("state-icon-like",'opacity', this.x < 0 ? 0 : this.movePercent * 10)
this.set
INode
Style("state-icon-dislike",'opacity', this.x > 0 ? 0 : this.movePercent * 10)
this.set
Element
Style("state-icon-like",'opacity', this.x < 0 ? 0 : this.movePercent * 10)
this.set
Element
Style("state-icon-dislike",'opacity', this.x > 0 ? 0 : this.movePercent * 10)
}
}
}
...
...
pages/template/pull-zoom-image/pull-zoom-image.uvue
浏览文件 @
5f2cd216
...
...
@@ -36,7 +36,7 @@
export default {
data() {
return {
$
INodeMap: new Map<string, INode
>()
$
elementMap: new Map<string, Element
>()
}
},
methods: {
...
...
@@ -51,23 +51,23 @@
s = 0.7
}
let x : number = (1 - s) * -100
this.set
INode
Style("user-info", "transform", `translate(${x},${y + (s-1)* -50}px) scale(${s})`)
this.set
INode
Style("head-img-box-2", "transform", `translateY(${y}px)`)
this.set
Element
Style("user-info", "transform", `translate(${x},${y + (s-1)* -50}px) scale(${s})`)
this.set
Element
Style("head-img-box-2", "transform", `translateY(${y}px)`)
},
onRefresherpulling(e : RefresherEvent) {
// console.log('onRefresherpulling',e.detail.dy)
let pullingDistance : number = e.detail.dy
this.set
INode
Style("head-img-1", 'transform', `scale(${pullingDistance / 200 + 1})`)
this.set
INode
Style("head-img-2", 'transform', `scale(${pullingDistance / 200 + 1})`)
this.set
Element
Style("head-img-1", 'transform', `scale(${pullingDistance / 200 + 1})`)
this.set
Element
Style("head-img-2", 'transform', `scale(${pullingDistance / 200 + 1})`)
},
// 工具方法,用于快速设置
INode
的 style
set
INode
Style(refName : string, propertyName : string, propertyStyle : any) : void {
let
iNode : INode | null = this.$INode
Map.get(refName)
if (
iNode
== null) {
iNode = this.$refs.get(refName) as INode
;
this.$
INodeMap.set(refName, iNode
)
}
iNode
.style.setProperty(propertyName, propertyStyle);
// 工具方法,用于快速设置
Element
的 style
set
Element
Style(refName : string, propertyName : string, propertyStyle : any) : void {
let
element : Element | null = this.$element
Map.get(refName)
if (
element
== null) {
element = this.$refs.get(refName) as Element
;
this.$
elementMap.set(refName, element
)
}
element
.style.setProperty(propertyName, propertyStyle);
},
back() {
uni.navigateBack({
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录