Pages

Html

Pages

Tuesday, May 7, 2024

Audio player

Gujarati Text-to-Speech Player

ગુજરાતી ટેક્સ્ટ-ટુ-સ્પીચ પ્લેઅર



Text

Gujarati Text-to-Speech Player

Gujarati Text-to-Speech Player



Books 📚

Img 1
Img 1
Img 1
Img 1
Img 1
Img 1
Img 1
Img 1
Img 1
Img 1

 Html code 

                                    <!DOCTYPE html>
<html>
<head>

<style>
* { box-sizing: border-box; }
body {
  /* or any other parent wrapper */
  margin: 0;
  display: flex;
width: 300px;
  height: 100px;
 
  font: 16px/1.4 sans-serif;
  overflow: hidden;
 
}

.book {
  display: flex;
  margin: auto;
  width: 300px;
  /*1* let pointer event go trough pages of lower Z than .book */
  pointer-events: none;
  transform-style: preserve-3d;
  transition: translate 1s;
  translate: calc(min(var(--c), 1) * 50%) 0%;
  /* DEMO ONLY: incline on the X axis for pages preview */
  rotate: 1 0 0 30deg;
}

.page {
  --thickness: 5;
  /* PS: Don't go below thickness 0.4 or the pages might transpare */
  flex: none;
  display: flex;
  width: 100%;
  /*1* allow pointer events on pages */
  pointer-events: all;
  user-select: none;
  transform-style: preserve-3d;
  border: 1px solid #0008;
  transform-origin: left center;
  transition:
    transform 1s,
    rotate 1s ease-in calc((min(var(--i), var(--c)) - max(var(--i), var(--c))) * 50ms);
  translate: calc(var(--i) * -100%) 0px 0px;
  transform: translateZ( calc((var(--c) - var(--i) - 0.5) * calc(var(--thickness) * 1px)));
  rotate: 0 1 0 calc(clamp(0, var(--c) - var(--i), 1) * -180deg);
}

.page img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.front,
.back {
  flex: none;
  width: 100%;
  padding: 2rem;
  backface-visibility: hidden;
  background-color: #fff;
  /* Fix backface visibility Firefox: */
  translate: 0px;
}

.back {
  background-image: linear-gradient(to right, #fff 80%, #ddd 100%);
  translate: -100% 0;
  rotate: 0 1 0 180deg;
}

</style>
</head>
<body>

<div class="book">
  <div class="page">
    <div class="front">
      <img src="https://i.imgur.com/HFc9fVL.jpeg/500/400" alt="Img 1">
     
    </div>
    <div class="back">
     
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
  </div>

  <div class="page">
    <div class="front">
<img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
    <div class="back">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
  </div>

  <div class="page">
    <div class="front">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
    <div class="back">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
  </div>

  <div class="page">
    <div class="front">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
    <div class="back">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
  </div>

  <div class="page">
    <div class="front">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
    <div class="back">
      <img src="https://picsum.photos/500/400" alt="Img 1">
    </div>
  </div>
</div>

<script>

const flipBook = (elBook) => {
  elBook.style.setProperty("--c", 0); // Set current page
  elBook.querySelectorAll(".page").forEach((page, idx) => {
    page.style.setProperty("--i", idx);
    page.addEventListener("click", (evt) => {
      const curr = evt.target.closest(".back") ? idx : idx + 1;
      elBook.style.setProperty("--c", curr);
    });
  });
};

document.querySelectorAll(".book").forEach(flipBook);
</script>

</body>
</html>

   

Books

My example Website

Lorem ipsum 1


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet
Chessboard white

Poetry Collection

Lorem ipsum book

E-book number 1

Lorem ipsum 3


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet

Lorem ipsum 2


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet

Lorem ipsum 5


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet

Lorem ipsum 4


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet

Lorem ipsum 7


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet

Lorem ipsum 6


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet
End of the book

Lorem ipsum 8


Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,

sed diam nonumy eirmod tempor
invidunt ut labore et dolore

magna aliquyam erat, sed diam
voluptua. At vero eos et accusam

et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea

takimata sanctus est Lorem ipsum
dolor sit amet. Lorem ipsum dolor

sit amet

Text 26

With ❤️ by Nidhanshu Sharma

text 12

text 11

text 10

text 9

text 8

text 7

text 6

text 5

text 4

text 3

text 2

text 1

 


📖

   Html code 

<!DOCTYPE html>
<html>
<head>

<style>
  body{
    margin:0;
    background-color: #ffecc6;
}
*{
    box-sizing: border-box;
}
.book-section{
    height: 100vh;
    width: 100%;
    padding: 40px 0;
    text-align: center;
}
.book-section > .container{
    height: 400px;
    width: 500px;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 2%;
    margin-bottom: 30px;
    perspective: 1200px;
}
.container > .right{
    position: absolute;
    height: 100%;
    width: 50%;
    transition: 0.7s ease-in-out;
    transform-style: preserve-3d;
}
.book-section > .container > .right{
    right:0;
    transform-origin: left;
    border-radius: 10px 0 0 10px;
}
.right > figure.front, .right > figure.back{
    margin: 0;
    height: 100%;
    width: 100%;
    position: absolute;
    left:0;
    top:0;
    background-size: 200%;
    background-repeat: no-repeat;
    backface-visibility: hidden;
    background-color: white;
    overflow: hidden;
}
.right > figure.front{
    background-position: right;
    border-radius: 0 10px 10px 0;
    box-shadow: 2px 2px 15px -2px rgba(0,0,0,0.2);
}
.right > figure.back{
    background-position: left;
    border-radius: 10px 0 0 10px;
    box-shadow: -2px 2px 15px -2px rgba(0,0,0,0.2);
    transform: rotateY(180deg);
}
.flip{
    transform: rotateY(-180deg);
}
.flip::before{
    content: "";
    position: absolute;
    top:0;
    left:0;
    z-index: 10;
    width: 100%;
    height: 100%;
    border-radius: 0 10px 10px 0;
    background-color: rgba(0,0,0,0.1);
}
.book-section > button{
    border: 2px solid #ef9f00;
    background-color: transparent;
    color: #ef9f00;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    margin: 10px;
    transition: 0.3s ease-in-out;
}
.book-section > button:focus, .book-section > button:active{
    outline: none;
}
.book-section > p{
    color: rgba(0,0,0,0.7);
    font-family: calibri;
    font-size: 24px;
        margin: 15px 0;
}
.book-section > p > a{
    text-decoration: none;
    color: #ef9f00;
}
.book-section > button:hover{
    background-color: #ef9f00;
    color: #fff;
}
.front#cover, .back#back-cover{
    background-color: #ffcb63;
    font-family: calibri;
    text-align: left;
    padding: 0 30px;
}
.front#cover h1{
    color: #fff;
}
.front#cover p{
    color: rgba(0,0,0,0.8);
    font-size: 14px;

}
</style>
</head>
<body>
<div class="book-section">
       <p>With ❤️ by <a href="https://github.com/nidhanshusharma" target="_blank">Nidhanshu Sharma</a></p>
        <div class="container">
           <div class="right">
                <figure class="back"><p>text 12</p></figure>
                <figure class="front" id="cover">
                    <p>text 11</p>
                </figure>
            </div>
            <div class="right">
                <figure class="back"><p>text 10</p></figure>
                <figure class="front" id="cover">
                    <p>text 9</p>
                </figure>
            </div>
            <div class="right">
                <figure class="back"><p>text 8</p></figure>
                <figure class="front" id="cover">
                    <p>text 7</p>
                </figure>
            </div>
            <div class="right">
                <figure class="back"><p>text 6</p></figure>
                <figure class="front" id="cover">
                    <p>text 5</p>
                </figure>
            </div>
            <div class="right">
                <figure class="back"><p>text 4</p></figure>
                <figure class="front" id="cover">
                    <p>text 3</p>
                </figure>
            </div>
            <div class="right">
                <figure class="back"><p>text 2</p></figure>
                <figure class="front" id="cover">
                    <p>text 1</p>
                </figure>
            </div>
        </div>
        <button onclick="turnLeft()">Prev</button> <button onclick="turnRight()">Next</button>
       

    </div>

<script>
  var right = document.getElementsByClassName("right");
    var si = right.length;
    var z=1;
    turnlift();
    function turnRight()
    {
        if(si>=1){
            si--;
        }
        else{
            si=right.length-1;
            function sttmot(i){
                setTimeout(function(){right[i].style.zIndex="auto";},300);
            }
            for(var i=0;i<right.length;i++){
                right[i].className="right";
                sttmot(i);
                z=1;
            }
        }
        right[si].classList.add("flip");
        z++;
        right[si].style.zIndex=z;
    }
    function turnLeft()
    {
        if(si<right.length){
            si++;
        }
        else{
            si=1;
            for(var i=right.length-1;i>0;i--){
                right[i].classList.add("flip");
                right[i].style.zIndex=right.length+1-i;
            }
        }
        right[si-1].className="right";
        setTimeout(function(){right[si-1].style.zIndex="auto";},350);
    }
</script>

</body>
</html>

Text 25

Flipbook
1
Page 1 Content
Page 2 Content

 Html code 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flipbook</title>
  <style>
    /* Add your CSS styles here */
  </style>
</head>
<body>

<div id="flipbook-container">
  <!-- Previous Button -->
  <button id="prev-btn">Previous</button>
 
  <!-- Page Number Display -->
  <span id="page-number">1</span>
 
  <!-- Next Button -->
  <button id="next-btn">Next</button>
 
  <!-- Slider -->
  <input type="range" id="page-slider" min="1" max="40" value="1">
 
  <!-- Flipbook Pages -->
  <div class="page">Page 1 Content</div>
  <div class="page">Page 2 Content</div>
  <!-- Add more pages as needed -->
</div>

<script>
  // JavaScript code for controlling flipbook functionality
 
  // Variables
  const prevButton = document.getElementById('prev-btn');
  const nextButton = document.getElementById('next-btn');
  const pageNumber = document.getElementById('page-number');
  const pageSlider = document.getElementById('page-slider');
  const pages = document.querySelectorAll('.page');
  let currentPage = 1;
 
  // Functions
  function showPage(pageNum) {
    pages.forEach((page, index) => {
      if (index + 1 === pageNum) {
        page.style.display = 'block';
      } else {
        page.style.display = 'none';
      }
    });
  }
 
  function updatePageNumber(pageNum) {
    pageNumber.textContent = pageNum;
    pageSlider.value = pageNum;
  }
 
  // Event Listeners
  prevButton.addEventListener('click', () => {
    if (currentPage > 1) {
      currentPage--;
      showPage(currentPage);
      updatePageNumber(currentPage);
    }
  });
 
  nextButton.addEventListener('click', () => {
    if (currentPage < 40) {
      currentPage++;
      showPage(currentPage);
      updatePageNumber(currentPage);
    }
  });
 
  pageSlider.addEventListener('input', () => {
    const pageNum = parseInt(pageSlider.value);
    currentPage = pageNum;
    showPage(pageNum);
    updatePageNumber(pageNum);
  });
 
  // Initialize
  showPage(currentPage);
</script>

</body>
</html>

Text 24

Flipbook
Page 1
Page 2
1

 Html code 

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Flipbook</title>

<style>

    /* Style for flipbook container */

    .flipbook {

        width: 100%;

        height: auto;

        overflow: hidden;

        position: relative;

    }

    

    /* Style for pages */

    .page {

        width: 100%;

        height: auto;

        display: none;

    }

    

    /* Style for active page */

    .active {

        display: block;

    }

</style>

</head>

<body>

<div class="flipbook">

    <!-- Pages -->

    <div class="page active">Page 1</div>

    <div class="page">Page 2</div>

    <!-- Add more pages as needed -->

</div>


<!-- Controls -->

<button onclick="prevPage()">Previous</button>

<button onclick="nextPage()">Next</button>

<input type="range" min="1" max="40" value="1" id="pageSlider" onchange="goToPage(this.value)">

<span id="pageNumber">1</span>


<script>

    // JavaScript functions for controlling flipbook

    let currentPage = 1;

    const totalPages = 40;

    const pageSlider = document.getElementById("pageSlider");

    const pageNumber = document.getElementById("pageNumber");

    

    function prevPage() {

        if (currentPage > 1) {

            currentPage--;

            updatePage();

        }

    }

    

    function nextPage() {

        if (currentPage < totalPages) {

            currentPage++;

            updatePage();

        }

    }

    

    function goToPage(page) {

        currentPage = parseInt(page);

        updatePage();

    }

    

    function updatePage() {

        const pages = document.querySelectorAll(".page");

        pages.forEach(page => page.classList.remove("active"));

        pages[currentPage - 1].classList.add("active");

        pageSlider.value = currentPage;

        pageNumber.innerText = currentPage;

    }

</script>

</body>

</html>


Text 23

Flipbook
Page 1 Content
Page 2 Content

 HTML code 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flipbook</title>
<style>
  /* Style for the flipbook container */
  .flipbook-container {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    position: relative;
  }
  /* Style for the page content */
  .page-content {
    height: 500px; /* Adjust as needed */
    border: 1px solid #ccc;
    background-color: #f0f0f0;
    display: none;
  }
  /* Style for the active page */
  .page-content.active {
    display: block;
  }
</style>
</head>
<body>
<div class="flipbook-container">
  <!-- Previous button -->
  <button id="prevBtn">Previous</button>
  <!-- Page number slider -->
  <input type="range" id="pageSlider" min="1" max="40" value="1" step="1">
  <!-- Next button -->
  <button id="nextBtn">Next</button>
  <!-- Page contents -->
  <div class="page-content active" id="page1">
    Page 1 Content
  </div>
  <!-- Repeat the above div for each page -->
  <!-- Example for page 2 -->
  <div class="page-content" id="page2">
    Page 2 Content
  </div>
  <!-- Repeat for pages 3 to 40 -->
</div>
<script>
  // Get elements
  const prevBtn = document.getElementById('prevBtn');
  const nextBtn = document.getElementById('nextBtn');
  const pageSlider = document.getElementById('pageSlider');

  // Add event listeners
  prevBtn.addEventListener('click', goToPreviousPage);
  nextBtn.addEventListener('click', goToNextPage);
  pageSlider.addEventListener('input', goToPage);

  // Function to navigate to previous page
  function goToPreviousPage() {
    const currentPage = parseInt(pageSlider.value);
    if (currentPage > 1) {
      pageSlider.value = currentPage - 1;
      showPage(currentPage - 1);
    }
  }

  // Function to navigate to next page
  function goToNextPage() {
    const currentPage = parseInt(pageSlider.value);
    if (currentPage < 40) {
      pageSlider.value = currentPage + 1;
      showPage(currentPage + 1);
    }
  }

  // Function to navigate to a specific page
  function goToPage() {
    const pageNumber = parseInt(pageSlider.value);
    showPage(pageNumber);
  }

  // Function to show a specific page
  function showPage(pageNumber) {
    // Hide all pages
    const pages = document.querySelectorAll('.page-content');
    pages.forEach(page => page.classList.remove('active'));
    // Show the selected page
    const selectedPage = document.getElementById('page' + pageNumber);
    if (selectedPage) {
      selectedPage.classList.add('active');
    }
  }
</script>
</body>
</html>

Text 22

Flipbook
1
1
2
3

 Html code 

  <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flipbook</title>
<style>
  .container {
    width: 100%;
    text-align: center;
  }
  .page {
    width: 100%;
    height: 500px; /* Adjust height as needed */
    background-color: lightgray;
    display: none;
  }
  #currentPage {
    margin-top: 10px;
  }
</style>
</head>
<body>

<div class="container">
  <button onclick="prevPage()">Previous</button>
  <span id="currentPage">1</span>
  <input type="range" id="pageSlider" min="1" max="10" value="1" onchange="changePage()">
  <button onclick="nextPage()">Next</button>
</div>

<div id="page1" class="page" style="display: block;">1
  <!-- Content of page 1 -->
</div>
<div id="page2" class="page">2
  <!-- Content of page 2 -->
</div>
<!-- Add more pages as needed -->
<div id="page3" class="page">3
  <!-- Content of page 3 -->
</div>
<!-- Add more pages as needed -->

<script>
  let currentPage = 1;
  const totalPages = 10; // Update this with the total number of pages

  function showPage(pageNum) {
    document.querySelectorAll('.page').forEach(page => {
      page.style.display = 'none';
    });
    document.getElementById(`page${pageNum}`).style.display = 'block';
    document.getElementById('currentPage').textContent = pageNum;
    document.getElementById('pageSlider').value = pageNum;
  }

  function nextPage() {
    if (currentPage < totalPages) {
      currentPage++;
      showPage(currentPage);
    }
  }

  function prevPage() {
    if (currentPage > 1) {
      currentPage--;
      showPage(currentPage);
    }
  }

  function changePage() {
    currentPage = parseInt(document.getElementById('pageSlider').value);
    showPage(currentPage);
  }

  showPage(currentPage);
</script>

</body>
</html>