H5活動刮刮卡功能的實現與注意事項

I O發表於2018-06-27

      7月清倉活動有個刮刮卡的功能。找到了個很好用的外掛,但是有個坑搞了我好久。就是當覆蓋層是個圖片的時候老顯示跨域的問題。

先附上頁面線上地址。

https://m.shandjj.com/index.php/Forever/flashcard

看到的結果是這樣的:

H5活動刮刮卡功能的實現與注意事項

也可以出發回撥函式:

H5活動刮刮卡功能的實現與注意事項

一切正常。注意文件頁面中的圖片要轉為base64編碼的格式:

H5活動刮刮卡功能的實現與注意事項


接下來說一下我專案中遇到的問題:附上GitHub元件地址。自認為是不錯的刮刮卡元件。

https://github.com/Franslee/lucky-card複製程式碼
//基本用法
LuckyCard.case({coverColor:'#CCCCCC',ratio:.6,callback:function(){alert('中獎啦!')}});

//刮開層支援使用圖片,但圖片不能跨域,如果跨域可以考慮將先其轉成Data URI,再設定
LuckyCard.case({coverImg:'./demo.jpg'});

//callback可作為一個獨立的引數存在
LuckyCard.case(function(){
	//清除掉刮開層的所有畫素
	this.clearCover();
});複製程式碼

注意點是如果跨域先將其轉為data URL,在設定。也就是轉為base64的編碼格式。

千萬不要寫為./demo.jpg

這樣寫的話會報錯:錯誤圖片如下:

H5活動刮刮卡功能的實現與注意事項

出發回撥也會失敗。


下面附上base64編碼轉換地址:

http://www.bejson.com/ui/image2base64/複製程式碼


相關文章