宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動態(tài)
精選推薦

電商小程序 留住用戶秘訣

管理 管理 編輯 刪除

你是否也收到這樣的用戶反饋?

  • 商品列表滾動區(qū)域太小,很難找到想要的商品。
  • 頭部的搜索廣告占據(jù)了半個屏幕,擠占了實(shí)際空間。
  • 在我手機(jī)這樣小的屏幕上,展示區(qū)域太小了,能否把它放大點(diǎn)?

f2c10202307261038281290.png

在電商頁面中,我們需要向用戶展示眾多的商品、廣告等信息。

然而,如何在有限的屏幕空間中更好地展示它們,是一個需要我們深入思考的問題。


由于小程序 webview 渲染框架在技術(shù)存在一定的局限性,我們需要在不同的設(shè)計之間進(jìn)行抉擇。

  • 當(dāng)廣告具有較高的優(yōu)先級時,我們會考慮突出廣告的展示,同時減小商品列表在界面中所占比例。
  • 當(dāng)商品列表具有較高的優(yōu)先級時,我們會考慮優(yōu)先展示商品,而放棄廣告的展示。

c86ce202307261039191329.gif

但是當(dāng)廣告和商品列表同樣重要的情況下,要怎么辦呢?

常見的一種設(shè)計方式是設(shè)計一個隱藏按鈕,當(dāng)用戶不想看廣告的時候把廣告隱藏掉,隱藏之后商品列表就有更多展示空間

19c7b202307261039336767.png

但是這種情況也只是針對愿意手動點(diǎn)擊隱藏按鈕的情況下,還是有一定的局限性。

那么,有沒有辦法做到在無形中隱藏廣告呢?

5d518202307261039421593.png

說到這里,當(dāng)然是可以的啦??

1、吸頂布局 + worklet 輕松實(shí)現(xiàn)

在常見的電商小程序首頁,通常是頂部展示類目、接著展示商品詳情,商品詳情頂部也有熱門等等的分類。

當(dāng)頁面滾動的時候,我們希望商品詳情熱門分類可以吸在頂部,便于切換。

c0afa202307261040038949.gif

這里我們用到了 scroll-view 的 sticky-header、sticky-section 吸頂布局容器即可輕松實(shí)現(xiàn)。

<scroll-view
 type="custom"
 scroll-y
 show-scrollbar="{{false}}"
 worklet:onstartstart="handleScrollStart"
 worklet:onscrollupdate="handleScrollUpdate"
 worklet:onscrollend="handleScrollEnd"
>
	<sticky-section push-pinned-header="{{false}}">
		<sticky-header>
			<!-- 搜索框 -->
			...
		</sticky-header>
		<!-- 類目展示 -->
	</sticky-section>


	<sticky-section push-pinned-header="{{false}}" padding="{{[0, 16, 0, 16]}}">
		<sticky-header>
			<!-- 商品詳情熱門分類 -->
			...
		</sticky-header>
		<grid-view cross-axis-count="2" type="masonry">
			<!-- 兩列的瀑布流 -->
			...
		</grid-view>
	</sticky-section>
</scroll-view>

當(dāng) scroll-view 滾動的時候,根據(jù)滾動位置把搜索框放到標(biāo)題的位置,可以再節(jié)省一點(diǎn)空間

attached() {
	// nav-bar 隱藏或展示
	this.applyAnimatedStyle('.nav-bar', () => {
	'worklet'
	return {
		opacity: this.navBarOpactiy.value
	}
	})


	// 改變搜索框?qū)挾?	this.applyAnimatedStyle('.search', () => {
	'worklet'
	return {
		width: `${this.searchBarWidth.value}%`,
	}
	})
},


// scroll-view 監(jiān)聽函數(shù)
handleScrollUpdate(evt) {
	'worklet'
	const maxDistance = 60
	const scrollTop = clamp(evt.detail.scrollTop, 0, maxDistance)
	const progress = scrollTop / maxDistance
	const EasingFn = Easing.cubicBezier(0.4, 0.0, 0.2, 1.0)
	this.searchBarWidth.value = lerp(100, 70, EasingFn(progress))
	this.navBarOpactiy.value = lerp(1, 0, progress)
},


2、手勢 + worklet 操作更靈活

小程序新渲染框架支持了手勢系統(tǒng),手勢在這里可以發(fā)揮大作用~

我們可以使用手勢協(xié)商讓小程序頁面中的廣告、商品等無縫切換和更好的展示

3a404202307261040376640.gif

// .wxml
<pan-gesture-handler
	tag="pan"
	simultaneousHandlers="{{['scroll-view']}}"
	shouldResponseOnMove="shouldPanResponse"
	onGestureEvent="handlePan"
>
	<view class="page">
		<vertical-drag-gesture-handler
			tag="scroll-view"
			native-view="scroll-view"
			simultaneousHandlers="{{['pan']}}"
			shouldResponseOnMove="shouldScrollViewResponse"
        >
          	<scroll-view
				class="product-list"
				type="custom"
				scroll-y
				show-scrollbar="{{false}}"
				adjustDecelerationVelocity="adjustDeceleration"
				bindscroll="handleScroll"
			>
			...
			</scroll-view>
        </vertical-drag-gesture-handler>
	</view>
</pan-gesture-handler>


// .js
handlePan(e) {
      'worklet'
      ...


      if (e.state === GestureState.ACTIVE) {
        if (this._interactionState.value === InteractionState.UNFOLD) {
          // 展開狀態(tài)下,往上滑才折疊起來
          if (e.absoluteY - this._startY.value < 0) {
            this._interactionState.value = InteractionState.ANIMATING
            this._translY.value = timing(0.0, { duration: 250 }, () => {
              'worklet'
              this._interactionState.value = InteractionState.RESET
            })
          }
        } else {
          // 其它情況,跟隨手指滑動
          this._translY.value = e.absoluteY - this._startY.value
        }
      }


      // 其他狀態(tài)下的處理
	  ...
},

加入手勢之后,除了可以隱藏廣告,我們還可以將一些頭部信息隱藏

在用戶查看商品列表時,隱藏大部分無用信息,將商品列表展示區(qū)域最大化

// 最外層 .page 往上挪
this.applyAnimatedStyle('.page', () => {
	'worklet'
	const translY = clamp(this._translY.value, -this._tabsTop.value, 0)
	return {
		transform: `translateY(${translY}px)`
	}
})


// 改變 .navigation-bar 背景色
this.applyAnimatedStyle('.navigation-bar', () => {
	'worklet'
	const translY = clamp(this._translY.value, -this._tabsTop.value, 0)
	const opacity = translY / -this._tabsTop.value
	return {
		backgroundColor: `rgba(255, 255, 255, ${opacity})`
	}
})
	
// 輸入框:改變寬度并且展示
this.applyAnimatedStyle('.search-input', () => {
	'worklet'
	const translY = clamp(this._translY.value, -this._tabsTop.value, 0)
	const percentage = translY / -this._tabsTop.value
	return {
		width: `${percentage * 60 + 40}%`,
		opacity: percentage,
	}
})

除此之外,我們這里可以利用手勢來展示商家的一些信息

當(dāng)在商品列表往下拉到頂部時,觸發(fā)整個列表下拉展示出商家信息

再往上滑動則商品列表重新展示~

e8ecd202307261041163694.gif

// 商品詳情往下拉
this.applyAnimatedStyle('.main', () => {
	'worklet'
	const translY = clamp(this._translY.value, 0, Number.MAX_VALUE)
	console.log(222, translY)
	return {
		transform: `translateY(${translY}px)`
	}
})


// 簡單的 header 漸隱
// 商品詳情展示時,僅顯示簡單的 header:學(xué)堂名稱和幾個標(biāo)簽
this.applyAnimatedStyle('.header-shop-info-simple', () => {
	'worklet'
	const min = 50
	const max = 100
	const translY = clamp(this._translY.value, min, max) - min
	return {
		opacity: 1 - (translY / (max - min))
	}
})


// 復(fù)雜的 header 漸顯
// 商品詳情下拉,顯示復(fù)雜 header:展示熱門活動、公告等等信息
this.applyAnimatedStyle('.header-shop-info-detail', () => {
	'worklet'
	const min = 100
	const max = 150
	const translY = clamp(this._translY.value, min, max) - min
	return {
		opacity: translY / (max - min)
	}
})

加入手勢動畫之后,我們的頁面展示對比之前有了以下的優(yōu)勢:

  • 更加自然:更符合用戶操作習(xí)慣,用戶自然滾動屏幕時不會感到突兀
  • 更節(jié)省空間:滾動隱藏更為靈活、省空間,使頁面更清爽
  • 更高效的展示:可以將要展示的內(nèi)容更好的展示,無需做取舍

借助手勢動畫,我們可以優(yōu)化小程序界面展示、提升用戶體驗(yàn),從而獲得更高的商業(yè)價值。

如果你也想更好的留住用戶,mark 下這個 源碼 [ 瀑布流頁面 / 分類頁面 ] 直接接到到你的小程序吧~


請登錄后查看

CRMEB-慕白寒窗雪 最后編輯于2023-07-26 10:42:03

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
1179
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復(fù)
回復(fù)
問題:
問題自動獲取的帖子內(nèi)容,不準(zhǔn)確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊

切換手機(jī)號登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服