Giter VIP home page Giter VIP logo

vue-line-clamp's Introduction

Vue Line Clamp

npm version npm downloads

A simple, fast and lightweight directive for truncating multi line texts using "cross-browser" CSS strategies.

Install

npm install --save vue-line-clamp
import Vue       from 'vue'
import lineClamp from 'vue-line-clamp'

Vue.use(lineClamp, {
  // plugin options
})

Usage

<p v-line-clamp:20="2">Some long text that needs to be truncated to a fixed number, which is 2 in this case. And if the browser doesn't support `-webkit-line-clamp`, then a line-height of 20px is going to be used in order to truncate this text, thus calculating its max-height.</p>

NOTE: the argument passed to the directive must be a number, and its used as the line-height value for non-webkit browsers, as part of the fallback method. In some upcoming version it may be able to detect this value automatically.

Plugin options

property type default description
importCss Boolean false Set to true in order to import styles into <head> automatically, element.style is used by default
textOverflow String ellipsis Set the value for text-overflow property in modern browsers
fallbackFunc Function defaultFallbackFunc Provide your own default method to handle the truncation strategy on unsupported browsers. Accepts all directive params: element (Node), bindings (Object), lines (Number)

Caveats

  1. Probably there may be problems when loading custom fonts. I've done some tests and couldn't detect any inconsistence so far, so feel free to open an issue and provide code to reproduce any bug or glitch you find.
  2. The fallback method for older browsers won't show up the ellipsis (...) since we can't control the part of the text node that may get "clamped".

Changelog

v1.2.4 - Implemented textOverflow option.

v1.2.1 - Implemented fallbackFunc options, fixed multiple elements clamping on same page.

v1.2 - Lines parameter passed to v-line-clamp is now reactive.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.