features.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Ai_anchor_Features</title>
  8. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet"
  9. integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
  10. <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css"
  11. integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
  12. <link rel="stylesheet" href="./style.css">
  13. </head>
  14. <body id="top">
  15. <div style="overflow: hidden; position: relative;">
  16. <div class="row px-0 mx-0">
  17. <div class="col-lg-2 px-0">
  18. <div class="card border-0">
  19. <img style="width:14vw;" src="./img/about/home_六角.png" alt="...">
  20. <div class="card-img-overlay d-flex justify-content-center align-items-center">
  21. <div>
  22. <a href="./index.html">
  23. <img class="home-btn" style="width: 70px; position: relative; right:1.5vw; bottom:20px;"
  24. src="./img/about/home_黑.png" alt="">
  25. </a>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="col-lg-9 px-0">
  31. <div class="card border-0">
  32. <img style="position: relative; right:20px;" class="img-fluid" src="./img/about/Bar.png" alt="">
  33. <div class="card-img-overlay">
  34. <div class="mt-3 me-2">
  35. <h1 style="font-size:3rem;" class="fw-bold mb-0 text-white" set-lan="html:index-features">特色</h1>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. <div class="col-lg-1 px-0">
  41. <!-- <nav style="margin-top: 40px;" class="navbar"> -->
  42. <div style="margin-top: 40px;">
  43. <ul style="float: left;" class="navbar-nav mb-2 mb-lg-0 me-3">
  44. <li class="nav-item dropdown">
  45. <a class="nav-link dropdown-toggle" style="font-size: 18px;" href="#" id="navbarDropdown"
  46. role="button" data-bs-toggle="dropdown" aria-expanded="false">
  47. 中/En
  48. </a>
  49. <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
  50. <li><button class="nav-link lan-switch" aria-current="page" set-lan="html:en"
  51. onclick="changeLan(this);window.location.reload();" value="en">English</button>
  52. </li>
  53. <li><button class="nav-link lan-switch" aria-current="page" set-lan="html:zh"
  54. onclick="changeLan(this);window.location.reload();" value="zh">中文</button></li>
  55. </ul>
  56. </li>
  57. </ul>
  58. <div style="float: left;" class="me-auto mt-2">
  59. <a id="expand" onclick="openFullscreen();" style="cursor: pointer;" class="border-0"><i
  60. style="font-size: 18px;" class="fas fa-expand text-dark"></i></a>
  61. <a id="compression" onclick="closeFullscreen();" style="cursor: pointer;" class="border-0"><i
  62. class="fas fa-compress text-dark"></i></a>
  63. </div>
  64. </div>
  65. <!-- </nav> -->
  66. </div>
  67. </div>
  68. <section class="sec-features" id="sec-features">
  69. <div class="container text-center">
  70. <!-- <h2 class="features-title"><strong>4</strong><lan set-lan="html:feature">大特色</lan></h2> -->
  71. <div class="row" style="position: relative;">
  72. <div class="col-xs-12 col-md-6 col-lg-6">
  73. <div class="features-imgfr">
  74. <video autoplay muted loop>
  75. <source src="img/官網1_加速.mp4" type="video/mp4">
  76. </video>
  77. </div>
  78. </div>
  79. <div class="col-xs-12 col-md-6 col-lg-6 features-col">
  80. <div>
  81. <!-- <span class="features-num">1</span> -->
  82. <div class="row px-0 mx-0 mt-0">
  83. <div class="col-lg-4 pe-0">
  84. <img width="154" class="img-fluid" src="./img/组 6.png" alt="">
  85. </div>
  86. <div class="col-lg-8 ps-0">
  87. <div style="margin-top: 100px;">
  88. <h3 class="text-start">
  89. <lan set-lan="html:feature_no1_title1">輸入文字腳本及素材</lan><br>
  90. <lan set-lan="html:feature_no1_title2">一鍵輸出合成影片</lan>
  91. </h3>
  92. <ul class="features-list">
  93. <li set-lan="html:feature_no1_li1">只需等待數分鐘即產製完成</li>
  94. <li set-lan="html:feature_no1_li2">可上傳圖片或是影片作為背景</li>
  95. <li set-lan="html:feature_no1_li3">生成MP4檔</li>
  96. </ul>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="row" style="position: relative;">
  104. <div class="col-xs-12 col-md-6 features-col">
  105. <div>
  106. <!-- <span class="features-num">2</span> -->
  107. <div class="row px-0 mx-0 mt-0">
  108. <div class="col-lg-8 d-flex justify-content-end">
  109. <div style="margin-top: 100px;">
  110. <h3 set-lan="html:feature_no2_title">多位AI虛擬人物選擇</h3>
  111. <ul class="features-list">
  112. <li set-lan="html:feature_no2_li1">無人物肖像權問題</li>
  113. <li set-lan="html:feature_no2_li2">人物表情、動作自然</li>
  114. <li set-lan="html:feature_no2_li3">因應主題,選擇合適人物</li>
  115. </ul>
  116. </div>
  117. </div>
  118. <div class="col-lg-4">
  119. <img class="img-fluid" width="154" src="./img/组 7.png" alt="">
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <div class="col-xs-12 col-md-6 d-block">
  125. <div class="features-imgfr">
  126. <video autoplay muted loop>
  127. <source src="img/官網2.mp4" type="video/mp4">
  128. </video>
  129. </div>
  130. </div>
  131. <!-- <div class="col-xs-12 col-md-6 d-md-block">
  132. <div class="features-imgfr">
  133. <video autoplay muted loop>
  134. <source src="img/官網2.mp4" type="video/mp4">
  135. </video>
  136. </div>
  137. </div> -->
  138. </div>
  139. <div class="row" style="position: relative;">
  140. <div class="col-xs-12 col-md-6">
  141. <div class="features-imgfr">
  142. <video autoplay muted loop>
  143. <source src="img/官網3.mp4" type="video/mp4">
  144. </video>
  145. </div>
  146. </div>
  147. <div class="col-xs-12 col-md-6 features-col">
  148. <div>
  149. <!-- <span class="features-num">3</span> -->
  150. <div class="row px-0 mx-0 mt-0">
  151. <div class="col-lg-4">
  152. <img width="154" class="img-fluid" src="./img/组 8.png" alt="">
  153. </div>
  154. <div class="col-lg-8">
  155. <div style="margin-top: 100px;">
  156. <h3 class="text-start" set-lan="html:feature_no3_title">投影片轉製為影片</h3>
  157. <ul class="features-list">
  158. <li set-lan="html:feature_no3_li1">輸入文字腳本及投影片連結
  159. <br>一鍵完成影片
  160. </li>
  161. <li set-lan="html:feature_no3_li2">生成MP4檔</li>
  162. </ul>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. <div class="row" style="position: relative;">
  170. <div class="col-xs-12 col-md-6 features-col">
  171. <div>
  172. <!-- <span class="features-num">4</span> -->
  173. <div class="row px-0 mx-0 mt-0">
  174. <div class="col-lg-8 d-flex justify-content-end">
  175. <div style="margin-top: 100px;">
  176. <h3 set-lan="html:feature_no4_title">多語言支援</h3>
  177. <ul class="features-list">
  178. <li set-lan="html:feature_no4_li1">支援中英文內容</li>
  179. <li set-lan="html:feature_no4_li2">可加入字幕</li>
  180. </ul>
  181. </div>
  182. </div>
  183. <div class="col-lg-4">
  184. <img width="154" class="img-fluid" src="./img/组 9.png" alt="">
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. <div class="col-xs-12 col-md-6 d-block">
  190. <div class="features-imgfr">
  191. <video autoplay muted loop>
  192. <source src="img/官網4.mp4" type="video/mp4">
  193. </video>
  194. </div>
  195. </div>
  196. <!-- <div class="col-xs-12 col-md-6 d-md-block">
  197. <div class="features-imgfr">
  198. <video autoplay muted loop>
  199. <source src="img/官網4.mp4" type="video/mp4">
  200. </video>
  201. </div>
  202. </div> -->
  203. </div>
  204. <button class="btn-dark" onclick="direct()">
  205. <lan set-lan="html:try_it_out">立即開始</lan>
  206. </button>
  207. </div>
  208. </section>
  209. <i style="font-size: 48px; position: fixed; bottom:50px; right:50px; color:#193179; cursor: pointer;"
  210. data-gt-target="#top" data-gt-duration="500" class="gotop fas fa-chevron-circle-up"></i>
  211. </div>
  212. <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js"
  213. integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p"
  214. crossorigin="anonymous"></script>
  215. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js"
  216. integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT"
  217. crossorigin="anonymous"></script>
  218. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  219. <script src="js/lan.js"></script>
  220. <script>
  221. $("*").each(function (index, element) {
  222. // 此元素被點選後執行
  223. $(this).click(function (e) {
  224. // 取得被點選元素的屬性:data-gt-target
  225. var target = $(this).attr("data-gt-target");
  226. var duration = $(this).attr("data-gt-duration");
  227. var offset = $(this).attr("data-gt-offset");
  228. // JS 語法:判斷式
  229. // if (條件) {程式區塊}
  230. // 當條件成立,會執行程式區塊
  231. // 如果 目標有資料 才會執行 { } 內的程式
  232. // 避免出現 undefine (未定義 - 不存在的資料)
  233. if (target) {
  234. //console.log("目標:" + target);
  235. //console.log("時間:" + duration);
  236. //console.log("位移:" + offset);
  237. // 上方位置 = 目標區塊.位移().上方位置
  238. var top = $(target).offset().top;
  239. //console.log("要前往元素的上方位置:" + top);
  240. // 網頁元素.停止().動畫({ 上方捲動:指定元素 - 位移},持續時間)
  241. // parseInt() 將文字轉為數字
  242. $("html").stop().animate({
  243. scrollTop: top - offset
  244. }, parseInt(duration));
  245. }
  246. });
  247. });
  248. var expandbtn = document.getElementById("expand");
  249. var compressionbtn = document.getElementById("compression");
  250. // Using JavaScript to open the page in fullscreen mode
  251. var elem = document.documentElement;
  252. function openFullscreen() {
  253. if (elem.requestFullscreen) {
  254. elem.requestFullscreen();
  255. compressionbtn.style.display = 'inline';
  256. } else if (elem.webkitRequestFullscreen) { /* Safari */
  257. elem.webkitRequestFullscreen();
  258. } else if (elem.msRequestFullscreen) { /* IE11 */
  259. elem.msRequestFullscreen();
  260. }
  261. }
  262. function closeFullscreen() {
  263. if (document.exitFullscreen) {
  264. document.exitFullscreen();
  265. compressionbtn.style.display = 'none';
  266. } else if (document.webkitExitFullscreen) { /* Safari */
  267. document.webkitExitFullscreen();
  268. } else if (document.msExitFullscreen) { /* IE11 */
  269. document.msExitFullscreen();
  270. }
  271. }
  272. function debounce(func, wait = 20, immediate = true) {
  273. var timeout;
  274. return function () {
  275. var context = this, args = arguments;
  276. var later = function () {
  277. timeout = null;
  278. if (!immediate) func.apply(context, args);
  279. };
  280. var callNow = immediate && !timeout;
  281. clearTimeout(timeout);
  282. timeout = setTimeout(later, wait);
  283. if (callNow) func.apply(context, args);
  284. };
  285. };
  286. const featuresBlock = document.querySelectorAll('.features-block');
  287. const featuresRow = document.querySelectorAll('.sec-features .row');
  288. function checkSlide() {
  289. console.log('pass');
  290. featuresRow.forEach((block, i) => {
  291. // half way through the image
  292. const slideInAt = (window.scrollY + window.innerHeight) - block.offsetHeight / 2;
  293. console.log(slideInAt);
  294. console.log(block.offsetTop);
  295. // bottom of the image
  296. const isHalfShown = slideInAt > block.offsetTop;
  297. if (isHalfShown) {
  298. console.log('active');
  299. featuresBlock[i].classList.add('active');
  300. }
  301. });
  302. }
  303. window.addEventListener('scroll', debounce(checkSlide));
  304. </script>
  305. </body>
  306. </html>