Image slideshow program

Overview

SLIDESHOW

slideshow

가족앨범 사진들을 디스플레잉을 어떻게 할 수 있을까 고민하다가 슬라이드쇼 프로젝트를 시작하게 되었습니다.
예전에 만든 슬라이드쇼를 제대로 만들어본 경험으로 더 좋은 모습으로 만들고 했습니다.

슬라이드쇼의 목적은 브라우저 전체화면으로 사진을 한장씩 넘겨보는것입니다.
이 프로그램의 특징을 요약하자면 다음과 같습니다.

  • 슬라이드와 이미지 스타일에 관한 설정
  • 자동재생
  • 터치 디바이스 지원
  • 다국어
  • 슬라이드, 설정 데이터 백업 및 복원
  • 트랜지션 타입 설정
  • 슬라이드 캡션
  • 다크모드
  • json 형태의 슬라이드 데이터 지원
  • 키보드 단축키

Usage

깃허브에서 제공하는 데모는 다음 주소와 같습니다.

https://redgoose-dev.github.io/slideshow/

접속하면 다음과 같은 화면을 볼 수 있습니다.

screen

슬라이드 이미지를 중심으로 캡션, 이전|다음으로 이동하는 컨트롤 버튼, 썸네일 목록과 환경설정 화면을 여는 버튼들로 화면이 구성되어 있습니다.

Preference

환경설정은 슬라이드쇼에서 많은 기능들을 직접 조정할 수 있도록 도와줍니다.
우측 위 버튼에서 Menu > Preference에서 환경설정을 열 수 있습니다. 각 탭에따라 역할을 가지고 있으며 그에대한 설명은 다음과 같습니다.

  • General: 슬라이드쇼 기초적인 항목들에 대하여 다룹니다.
  • Slides: 슬라이드 기능에 관한 항목
  • Style: 이미지 표현과 색표현에 관한 항목
  • Data: 슬라이드 데이터 편집
  • Keyboard: 키보드 단축키에 관한 항목

Management tree data

슬라이드 데이터는 Preference > Data 탭에서 편집할 수 있습니다. 이리 만들어져 있는 예제파일 tree.json 을 열어보면 객체로 슬라이드들의 정보가 입력되어있다는것을 볼 수 있습니다.
슬라이드 그룹 하나의 모습은 다음과 같습니다.

{
  "foo": {
    "name": "slide title",
    "description": "description text",
    "slides": [
      {
        "src": "filename.jpg",
        "thumbnail": "filename.jpg",
        "title": "title text",
        "description": "description text"
      }
    ]
  }
}

슬라이드 데이터는 json파일로 만들어서 가져오거나 외부 서버에서 가져올 수 있습니다.
외부 서버에서 슬라이드를 가져올때의 데이터는 다음과 같습니다.

{
  "foo": {
    "name": "title",
    "description": "description text",
    "slides": "https://domain.com/example.json"
  }
}

Keyboard shortcut

키보드 단축키는 다음과 같습니다.

  • 방향키(왼쪽): 이전 슬라이드로 이동하기
  • 방향키(오른쪽): 다음 슬라이드로 이동하기
  • A: 자동재생
  • S: 환경설정 열기
  • T: 썸네일 이미지 목록화면을 엽니다.
  • R: 슬라이드쇼 재실행
  • H: 조작과 상태요소들을 보여줍니다.
  • G: 슬라이드 그룹 선택창을 엽니다.

Develop Usage

개발환경 구축에 앞서 다음과 같이 저장소를 클론하고 디펜던시를 인스톨합니다.

git clone https://github.com/redgoose-dev/slideshow.git
cd slideshow
yarn install

Web environment

프로젝트를 개발할때 다음과 같이 실행하여 개발서버를 띄웁니다.

yarn run dev

서버를 띄웠으면 브라우저에서 http://localhost:3000으로 접속하여 프리뷰할 수 있습니다.
프로젝트의 본 소스는 src/에 있으며 코드는 vue3로 작성되었습니다.

개발을 완료했으면 다음과 같이 프로젝트를 빌드합니다.

yarn run build

빌드가 완료되면 docs/경로에 파일들이 업데이트 됩니다.

macOS and Windows app

일렉트론을 통하여 앱 빌드작업하기에 앞서 먼저 다음과 같이 웹 프로젝트를 빌드합니다.

yarn run build

다음 명령과 같이 개발모드로 실행하거나 프로덕션으로 빌드할 수 있습니다.

# development app
yarn run electron-dev

# build app
yarn run electron-build

Using component

다른 프로젝트에서 슬라이드쇼를 사용하려면 npm을 이용하여 컴포넌트를 직접 추가할 수 있습니다.

yarn add @redgoose/slideshow

디펜던시를 추가하고 for external project 페이지의 내용과 소스를 참고하여 개발할 수 있습니다.

Support browser

개발할때 다음과 같은 브라우저로 작업하면서 테스트했습니다.

  • macOS, iOS safari
  • Google Chrome
  • Microsoft Edge

thanks

You might also like...
Lightweight to-do program, simple and fresh ui style, responsive page layout, easy to adapt to various clients.

Lightweight to-do program, simple and fresh ui style, responsive page layout, easy to adapt to various clients, making to-do records easy and pleasant.

A do questions  mini program for WeChat based on Uni-App
A do questions mini program for WeChat based on Uni-App

A do questions mini program for WeChat based on Uni-App

A touch ready and responsive slideshow / carousel for Vue & Vue 3.

Vueper Slides A touch ready and responsive slideshow / carousel for Vue and Vue 3. Installation npm install vueperslides Vue 3 npm install vueperslid

A hackable slideshow framework built with Vue.js
A hackable slideshow framework built with Vue.js

Eagle.js - A slideshow framework for hackers Slideshow system built on top of the Vue.js Supports animations, themes, interactive widgets (for web dem

A Vue.js 2.0 slideshow component working with Three.js
A Vue.js 2.0 slideshow component working with Three.js

vue-displacement-slideshow Webgl image displacement transitions made simple. A Vue.js 2.0 slideshow component working with Three.js and GSAP. Demo The

A touch ready and responsive slideshow / carousel for Vue & Vue 3.

A touch ready and responsive slideshow / carousel for Vue & Vue 3.

A hackable slideshow framework built with Vue.js
A hackable slideshow framework built with Vue.js

Eagle.js - A slideshow framework for hackers Slideshow system built on top of the Vue.js Supports animations, themes, interactive widgets (for web dem

Lightbox Photo Grid and Slideshow compoment for Vue.JS
Lightbox Photo Grid and Slideshow compoment for Vue.JS

Lightbox Photo Grid and Slideshow component for Vue.JS v-lightbox is a Vue component which allows to display first x (1-5) images of your gallery in a

responsive image with zoomed image on hover
responsive image with zoomed image on hover

vue-zoom-on-hover responsive image with zoomed image on hover. demo (ctrl+click to open in new tab) this vue.js component displays an image with the w

A Vue component that lets you quickly create responsive image tags with an optimal number of image sources for all devices.

Vue Responsive Image Vue Responsive Image is a Vue component that allows you to quickly insert responsive image tags in your Vue project, provided you

A Vue component for showing loader during image loading https://john015.github.io/vue-load-image/

English | 한국어 Vue-load-image Vue-load-image is 1KB(gzipped size) minimalist Vue component that display loader during image loading and display alterna

A simple image pop-up for keeping image previewing in same ratio

vue-mobile-image-uncover The simplest solution for putting varius ratio images, which you don't want to break your layout. Live Demo (WIP) Usage impor

Optimus is a desktop image optimization application. It supports conversion and compression between WebP, JPEG, and PNG image formats.
Optimus is a desktop image optimization application. It supports conversion and compression between WebP, JPEG, and PNG image formats.

Optimus is a desktop image optimization application. It supports conversion and compression between WebP, JPEG, and PNG image formats.

🌈 A Vue image component. Simple realization of image shadow.

🌈 vue-image-shadow A Vue image component. Simple realization of image shadow. 📚 Example Online: https://image-component.github.io/vue-image-shadow/

vue-image-markup will provide you to edit uploaded image easily and save it.

Markup Image with Vue.js (customizable) vue-image-markup will provide you to edit uploaded image easily and save it. Installation npm i vue-image-mark

Vue-image-loader: image loader for vue js with prevue

Vue-image-loader: image loader for vue js with prevue

A Directive for setting fall back image in a vue js application if in case image is not loaded

vue-fall-back-image-directive A Directive for setting fall back image in a vue js application. Installation npm install Run npm install --save vue-fal

Vue.js lazy load image directive with akamai image converter

vue-lazyload-akamai Vue.js lazy load image directive with akamai image converter 💅

An image picker for image uploading

An image picker for image uploading

Comments
  • normalize css 교체예정

    normalize css 교체예정

    소스가 더 적은방식이 있어 교체하려한다.

    /*** The new CSS Reset - version 1.0.0 (last updated 8.7.2021) ***/
    
    /* Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property */
    *:where(:not(iframe, canvas, img, svg, video):not(svg *)){
      all: unset;
      display: revert;
    }
    
    /* Preferred box-sizing value */
    *,
    *::before,
    *::after{
      box-sizing: border-box;
    }
    
    /* Remove list styles (bullets/numbers) */
    ol, ul {
      list-style: none;
    }
    
    /* For images to not be able to exceed their container */
    img {
      max-width: 100%;
    }
    
    /* removes spacing between cells in tables */
    table{
      border-collapse: collapse;
    }
    

    엄청많은 리셋을 시키기 때문에 점검이 꼭 필요한 부분이다.

    enhancement 
    opened by redgoose-dev 1
Releases(1.2.2)
  • 1.2.2(Oct 13, 2021)

    • Vite로 번들링환경 변경
    • NPM 모듈 사용은 안하기로 결정..
    • 컴포넌트를 사용하고 싶다면 NPM을 이용하는것보다 직접 소스를 복사하는것을 권장합니다.

    1.2.1

    • #5 add autoprefixer
    Source code(tar.gz)
    Source code(zip)
  • 1.1.6(Jun 1, 2021)

  • 1.1.2(May 29, 2021)

    마침내 슬라이드쇼가 완성되어서 이럴게 릴리즈를 하게 되었습니다. 현재까지 기능이 만들어진 부분은 다음과 같습니다.

    • 기초적인 슬라이드 기능
    • 환경설정
    • 폴더 방식으로 변한 슬라이드 데이터 그룹
    • 슬라이드 데이터 편집기능

    큰 기능이 업데이트 된다면 릴리즈 할 예정입니다.

    Source code(tar.gz)
    Source code(zip)
Owner
redgoose
front-end developer
redgoose
A hackable slideshow framework built with Vue.js

Eagle.js - A slideshow framework for hackers Slideshow system built on top of the Vue.js Supports animations, themes, interactive widgets (for web dem

null 4.1k Dec 28, 2022
Image comparison slider. Compare images before and after. Supports React, Vue, Angular.

Image comparison slider. Compare images before and after. Supports React, Vue, Angular.

Dmitry Snisarenko 270 Jan 6, 2023
vuejs image slider

Building an accordion using VUEJS and Tailwind CSS Youtube video Here is the youtube video https://youtu.be/FRdHrYBN_Jc VueJS VueJS Docs - https://vue

Recraft Relic 4 Aug 22, 2022
Image slider which comes with 20 cool transitions

Documentation and demos Version 5 documentation Version 6 documentation Version 6 demos Overview This is an image slider developed with Vuejs 2 which

null 468 Jan 4, 2023
Image slider which comes with 20 cool transitions

Overview This is an image slider developed with Vuejs 2 which comes with 20 cool transitions out of the box. Demo You can view a demo here. Features F

null 0 Jun 12, 2019
This is an image slider developed with Vuejs 2 which comes with 20 cool transitions out of the box

Documentation and demos Version 5 documentation Version 6 documentation Version 6 demos Overview This is an image slider developed with Vuejs 2 which

Mark Brown 0 Sep 25, 2021
Image slideshow program

Image slideshow program

redgoose 17 Dec 26, 2022
Svis - Simple Vue3 Image Slideshow

Svis Requires: Vue3, Node.js Stable tag: 1.0 License: GPL-3.0-or-later Vue3 Imag

Marco 2 Feb 23, 2022
OSI helps you to track your all open-source Internships and Program in a single place ⚡

OSI helps you to track your all open-source Internships and Program in a single place ⚡

Rohan kumar 39 Jan 2, 2023
A simple program that calculates how much each rider should pay in a carpool with multiple destinations.

Cab Fare Splitter This is a simple program that splits a carpool fare between multiple riders, based on their expected cab fare if they did not carpoo

Changbai Li 1 Oct 30, 2022